繁体   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