我試圖用ASP.NET WebAPI後端實現jQuery Bluimp文件上傳控件(從這裏:https://github.com/blueimp/jQuery-File-Upload),但有一點麻煩。後端最終將支持移動應用程序,所以它已經爲CORS通過啓用此功能(在WebApiConfig
的Register
法):jQuery BlueImp文件上傳授權
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);
});
}
});
});
任何想法如何強制這件事發送標題?最終,我只是試圖實現拖放文件上傳,甚至不需要此控件的大部分功能,但它似乎有一些不錯的選擇。如果我可以讓它發送標題,我想我會被設置。