我正在尝试使用ASP.NET WebAPI后端实现jQuery Bluimp文件上载控件(从这里:https://github.com/blueimp/jQuery-File-Upload),但有点麻烦。后端最终会支持移动应用,因此已经通过此方式启用了CORS(Register
方法WebApiConfig
):
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
整个后端被一个身份验证处理程序锁定,该处理程序覆盖SendAsync
方法以查看request.Headers.Authorization
,提取参数并验证我的问题所在的请求。无论我尝试什么(包括来自这个SO链接:jQuery-File-Upload by blueimp - additional headers),我都无法让控件将标头发送到后端,从而阻止我在允许它保存之前验证上传请求。我尝试过的各种方法是:
$(function() {
$('#fileupload').fileupload({
add: function(e, data) {
data.headers = {
'Authorization': 'Basic ' + $.cookie('auth')
};
data.submit();
},
headers: {
Authorization: 'Basic ' + $.cookie('auth')
},
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", 'Basic ' + $.cookie('auth'));
},
xhrFields: {
"Authorization": 'Basic ' + $.cookie('auth')
},
requestHeaders: {
"Authorization": 'Basic ' + $.cookie('auth')
},
singleFileUploads: false,
dataType: 'jsonp',
url: window.core.get_serverUrl() + 'upload/uploadcasefile',
done: function(e, data) {
$.each(data.result.files, function(index, file) {
$('<p/>').text(file.name).appendTo(document.body);
});
}
});
});
关于如何强制发送标题的任何想法?最终我只是尝试实现拖放文件上传,甚至不需要这个控件的大多数功能,但它似乎有一些不错的选择。如果我可以让它发送标题,我想我会被设置。
答案 0 :(得分:0)
但这可能有点旧,人们可能会在未来遇到这种情况。可以选择包含标题。它被视为与所有其他选项一样: 即所需要的只是在选项对象的“headers”对象中使用您想要的标题更新选项。