Ajax responseText和statusText在不同服务器上不同

时间:2018-07-19 20:01:31

标签: c# jquery ajax asp.net-mvc http

我在ASP.NET MVC中有一个项目,在该项目中,我将返回以下内容:

public ActionResult MyAction()
{
       return new HttpStatusCodeResult(HttpStatusCode.NotFound, "custom err msg");
} 

此响应被发送到ajax函数并由fail()函数捕获:

$.ajax({
    url: "url to MyAction",
    type: 'POST',
    contentType: "application/json; charset=utf-8",
    dataType: "json"
  })
  .fail(function (data) {
    console.log(data); 
   });
});

当我通过本地IIS Express上的Visual Studio运行此命令时,console.log(data)返回:

responseText
:
"some html with my 'custom err msg' inside it"
status
:
404
statusText
:
"error"

但是在我的Azure开发服务器上:console.log(data)返回:

responseText
:
"The resource you are looking for has been removed, had its name changed, or is temporarily unavailable."
status
:
404
statusText
:
"custom err msg"

为什么这样不一致?在两台服务器上都可以这样做,或者我的错误消息是responseText或statusText

1 个答案:

答案 0 :(得分:0)

HTTP / 2中不再存在状态行。也许服务器正在运行不同版本的HTTP?

(也是,第一次,在application / json上没有charset参数)