我正在使用版本为3.2.1的jQuery和.NET Framework 4.5.2 MVC。
我有一个jquery ajax调用MVC控制器。如果操作成功,则返回结果为:
return new HttpStatusCodeResult(200, "success message");
当它失败时,
return new HttpStatusCodeResult(400, "failure message");
以下是我的JavaScript调用:
var promise = $.ajax({
method: 'POST',
url: '/Home/TestAjaxAsync',
// ...
});
promise.done(function(results) {
console.log("got success: ");
console.log(results);
});
promise.fail(function(err) {
console.log("got error: ");
console.log(err);
});
所有这些在本地机器上的Visual Studio IIS Express上完美运行,当本地托管时,我可以发送请求并在statusText属性中获得“成功消息”和“失败消息”以及状态码。
但是,在远程生产服务器上托管时,这就停止工作了。我能够成功发送请求并成功接收响应,并在200 OK时获得“成功消息”。但对于400、401、403或任何其他错误代码,statusText始终为“error”。有时,自定义消息会显示在responseText中,带有完整的HTML标记。
我也尝试了以下方法,但无法在生产服务器上使其正常工作。
return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "failure message");