1

我試圖用ASP.NET WebAPI後端實現jQuery Bluimp文件上傳控件(從這裏:https://github.com/blueimp/jQuery-File-Upload),但有一點麻煩。後端最終將支持移動應用程序,所以它已經爲CORS通過啓用此功能(在WebApiConfigRegister法):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); 
       }); 
      } 
      }); 
     }); 

任何想法如何強制這件事發送標題?最終,我只是試圖實現拖放文件上傳,甚至不需要此控件的大部分功能,但它似乎有一些不錯的選擇。如果我可以讓它發送標題,我想我會被設置。

回答

0

但是,這可能有點老,人們未來可能會遇到這種情況。有一個包含標題的選項。它的處理方式與所有其他選項一樣: 即,所需的全部更新選項都是在選項對象的「標題」對象中包含標題。