AnA*_*ice 3 javascript jquery jquery-ui jquery-plugins
我正在使用以下jQuery文件上传插件:
https://github.com/blueimp/jQuery-File-Upload/wiki/Options
Run Code Online (Sandbox Code Playgroud)
我需要特定的额外formdata,它说有一个选项,但我得到一个JS错误"Uncaught SyntaxError:Unexpected identifier",并且没有FormData示例,这使得很难开始工作.
这是我有的:
$(function () {
$('.upload').fileUploadUI({
uploadTable: $('.upload_files'),
downloadTable: $('.download_files'),
buildUploadRow: function (files, index) {
var file = files[index];
return $(
'<tr>' +
'<td>' + file.name + '<\/td>' +
'<td class="file_upload_progress"><div><\/div><\/td>' +
'<td class="file_upload_cancel">' +
'<div class="ui-state-default ui-corner-all ui-state-hover" title="Cancel">' +
'<span class="ui-icon ui-icon-cancel">Cancel<\/span>' +
'<\/div>' +
'<\/td>' +
'<\/tr>'
);
},
buildDownloadRow: function (file) {
return $(
'<tr><td>' + file.name + ' ' + file.type + ' ' + file.size + '<\/td><\/tr>'
);
},
formData:
[
{
name: '_http_accept'
value: 'application/javascript'
},
{
name: '<%= session_key_name %>'
value: encodeURIComponent('<%= u cookies[session_key_name] %>'),
},
{
name: 'authenticity_token'
value: encodeURIComponent('<%= u form_authenticity_token %>')
}
]
});
});
Run Code Online (Sandbox Code Playgroud)
你没有在你的正确位置逗号formData,我想你希望它是这样的:
formData: [
{
name: '_http_accept',
value: 'application/javascript'
}, {
name: '<%= session_key_name %>',
value: encodeURIComponent('<%= u cookies[session_key_name] %>')
}, {
name: 'authenticity_token',
value: encodeURIComponent('<%= u form_authenticity_token %>')
}
]
Run Code Online (Sandbox Code Playgroud)
请注意,name: ...部件后面有逗号,但没有value: ...部件.
此外,我认为encodeURIComponent()这里没有合适的转义/编码机制,并且<%= u ...已经对URI进行了编码.你需要做的就是确保字符串不包含未转义的单引号,这样更像这样的东西可能会起作用(假设这个JavaScript正在通过ERB):
value: '<%= cookies[session_key_name].gsub(/'/, "\'") %>'
Run Code Online (Sandbox Code Playgroud)
适当的编码应该由插件处理,并且几乎肯定会进行POST,因此URL编码甚至不适用.
此外,您不需要在JavaScript字符串中转义斜杠,它们并不特别,所以您可以只说出'</td>'您说的位置'<\/td>'.
我对jQuery-File-Upload一无所知,但修复你的逗号至少应该让你超越你的直接问题(以及新的和更有趣的问题!).
| 归档时间: |
|
| 查看次数: |
4866 次 |
| 最近记录: |