我的ASP.NET MVC控制器中有一个操作,当无效参数传递给操作时,返回带有400 Bad Request的JSON数据.
[HttpDelete]
public ActionResult RemoveObject(string id) {
if(!Validate(id)) {
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return Json(new { message = "Failed", description = "More details of failure" });
}
}
Run Code Online (Sandbox Code Playgroud)
这可以在IIS下运行,也可以在Visual Studio中启动开发测试服务器.将项目部署到Azure后,400 Bad Request将返回,而不会返回JSON数据.内容类型已更改为邮件的"text/html"和"Bad Request".
为什么Azure下的行为不同?
我在向 ajax 调用发送错误的自定义消息时遇到问题。我的控制器返回如下内容:
return new HttpStatusCodeResult(400, "My error!");
Run Code Online (Sandbox Code Playgroud)
我的 ajax 代码如下所示:
error: function (xhr, httpStatusMessage) {
console.log(xhr.statusText);
console.log(httpStatusMessage);
}
Run Code Online (Sandbox Code Playgroud)
问题是 xhr.statusCode 和 httpStatusMessage 总是“错误”。我现在做错了什么?我期待有“我的错误!” 在 xhr.statusText 中。
我正在使用ASP.NET MVC 5和jquery-1.10.2
我的 xhr 输出是:
abort:ƒ ( statusText )
always:ƒ ()
complete:ƒ ()
done:ƒ ()
error:ƒ ()
fail:ƒ ()
getAllResponseHeaders:ƒ ()
getResponseHeader:ƒ ( key )
overrideMimeType:ƒ ( type )
pipe:ƒ ( /* fnDone, fnFail, fnProgress */ )
progress:ƒ ()
promise:ƒ ( obj )
readyState:4
responseText:"Bad Request"
setRequestHeader:ƒ ( name, …Run Code Online (Sandbox Code Playgroud)