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.
中上传一个 excel 文件
这是代码:
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 Unsupported Media Type
The request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format.
contentType
很重要 - 它告诉服务器您正在上传什么。在本例中,您已将值设置为 false
。服务器无法识别这个,所以它 returns false。如果您不需要特定的内容类型,则应删除 contentType
行以允许 jQuery 默认值生效。
我收到一个错误:
"POST {URL} 415 (Unsupported Media Type)" error
并且无法弄清楚为什么会这样。
我正在尝试在 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 Unsupported Media Type
The request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format.
contentType
很重要 - 它告诉服务器您正在上传什么。在本例中,您已将值设置为 false
。服务器无法识别这个,所以它 returns false。如果您不需要特定的内容类型,则应删除 contentType
行以允许 jQuery 默认值生效。