gpt4 book ai didi

jquery - Mvc Ajax 调用 Controller 不返回 statusText

转载 作者:行者123 更新时间:2023-12-01 03:59:57 25 4
gpt4 key购买 nike

我正在使用 jquery 3.2.1 和 .NET Framework 4.5.2 MVC。

我有一个对 mvc Controller 的 jquery ajax 调用。如果操作成功,则返回

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 始终为“错误”。有时,自定义消息在responseText中显示为带有完整html标记的YSOD。

我也尝试了以下方法,但根本无法使其在生产服务器上运行。

return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "failure message");

最佳答案

jQuery Documentation 提供

jqXHR.done(function( data, textStatus, jqXHR ) {});

An alternative construct to the success callback option, refer to deferred.done() for implementation details.

jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});

An alternative construct to the error callback option, the .fail() method replaces the deprecated .error() method. Refer to deferred.fail() for implementation details.

done(function(...)) 的第一个参数是 data,但 fail(function(...)) 的第一个参数是 data jqXHR,其中..

is a superset of the browser's native XMLHttpRequest object


你应该尝试

promise.fail(function (jqXHR) {
console.log("got error: ");
console.log(jqXHR.responseText);
});

promise.fail(function (jqXHR, textStatus) {
console.log("got error: ");
console.log(textStatus);
});

promise.fail(function (jqXHR, textStatus, errorThrown) {
console.log("got error: ");
console.log(errorThrown);
});

取决于什么最适合您。

关于jquery - Mvc Ajax 调用 Controller 不返回 statusText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49424415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com