簡體   English   中英

415使用JQuery / FormData和Web Api的不支持的媒體類型

[英]415 Unsupported Media Type Using JQuery/FormData and Web Api

我遇到一個錯誤:

"POST {URL} 415 (Unsupported Media Type)" error 

而且無法弄清楚為什么會這樣。

我正在嘗試JQuery using FormData.JQuery using FormData.上傳一個excel文件JQuery using FormData.

這是代碼:

var formdata = new FormData();
var file = input.get(0).files[0];
formdata.append('content', file);

var url = "/Phrase/Import/" + $('.exportPanel #Language').val()

var ajax = $.ajax({
    url: url,
    type: "POST",
    data: formdata,
    processData: false,
    contentType: false,
    success: function (data, textStatus, jqXHR) {
        //Do something.
    },
    error: function (jqXHR, textStatus, errorThrown) {
        //Do something.
    }
});

這是控制器代碼:

[Route("Import/{languageID}")]
[HttpPost]
public void ImportPhrases([FromUri]int languageID, [FromBody]Stream content)
{
    _service.ImportPhrases(content, languageID);          
}

根據Fiddler的說法,我注意到請求的內容類型與響應的內容類型不同(不確定這是否有所不同嗎?)。

Request: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Response: application/json; charset=utf-8

上面的JQuery在系統的不同部分中使用,但是使用WCF而不是Web API(正在從WCF更改為MVC / Web API的過程中),再次不確定是否會有所不同?

誰能告訴我我做錯了嗎?

非常感謝。

415不支持的媒體類型

請求實體具有服務器或資源不支持的媒體類型。 例如,客戶端將圖像上傳為image / svg + xml,但是服務器要求圖像使用其他格式。

contentType確實很重要-它告訴服務器您要上傳的內容。 在這種情況下,您已將值設置為false 服務器無法識別此錯誤,因此它返回false。 如果不需要特定的內容類型,則應刪除contentType行以允許使用jQuery默認值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM