3

我想送multipart/form-data與以下JavaScript和jQuery設置錯誤Chrome)從服務器收到400 Bad Request。雖然檢查頭和請求負載我發現,一些瀏覽器設置明確的內容類型的文件,如下所示:爲多/表單數據請求的文件部分內容類型是由客戶端

------WebKitFormBoundaryEuDIpEU2Ci8VNwNJ 
Content-Disposition: form-data; name="content"; filename="testfile.ext" 
Content-Type: EXT Project Data (64bit) 

------WebKitFormBoundaryEuDIpEU2Ci8VNwNJ 

在工作請求Content-Type應該如下:Content-Type: application/octet-stream,該服務器可以正確處理。

我懷疑這與瀏覽器的配置或文件關聯有關。有沒有一種方法可以明確設置請求的文件部分的內容類型?

某些用戶使用Firefox和Chrome時會出現問題。但是,有些用戶可以使用Chrome和Firefox成功上傳。我們的應用程序不支持IE。

+0

什麼客戶端產生該內容類型?您只能使用在[IANA](http://www.iana.org/assignments/media-types/index.html)上註冊的內容類型。 –

+0

你確定客戶的瀏覽器已經足夠支持'FormData'嗎? –

+0

我們的客戶正在使用最新版本的Chrome和Firefox,所以他們應該支持FormData。 – Peders

回答

4

好的,我們設法弄清楚了這個問題。事實證明,在某些客戶端計算機上註冊到客戶端系統的內容類型實際上是格式錯誤的,它們安裝了某些第三方應用程序。

我們無法以編程方式更改零件的內容類型瀏覽器集。 正如Michael-O指出的那樣,您應該始終使用通過IANA註冊的內容類型。這是標準的link

在這種情況下,它是向客戶端系統註冊非法內容類型的第三方軟件。內容類型不得包含空格,因此內容類型EXT Project Data顯然是非法的。我們通過將註冊的內容類型更改爲custom content type來解決問題。所以我們現在使用的內容類型是application/x-ext-project-data,然後在服務器端正確處理。

相關問題