【问题标题】:Ajax always returns error even when succeeded即使成功,Ajax 也总是返回错误
【发布时间】:2012-02-03 01:08:41
【问题描述】:

这是我的代码:

$.ajax({
                url: someUrl,
                type: "PUT",
                data: {
                    id: id,
                    message: "bla",
                    date: this.Date
                },
                success: function (data) {
                },
                error: function (data) {
                    alert("Failed to save.");
                }
            });

someUrl 是一种保存在数据库中的方法,它被调用并成功,它在我的数据库表中添加新行。 但是,我总是得到警报。在“数据”中,出现错误 500,并显示“参数字典包含方法 'MyMethod(Int32, System.String, System.DateTime) 的不可空类型 'System.DateTime' 的参数 'date' 的空条目'"。

【问题讨论】:

  • 使用 Firefix + Firebug。打开 NET 选项卡并查看您的请求和响应。这可能是由于您的服务器代码而不是您的 AJAX 调用。
  • @Diodeus 但是服务器方法没问题,它永远不会崩溃。
  • type: "PUT",

标签: ajax


【解决方案1】:

这可能不是您的 AJAX 代码错误,而是服务器端的错误。调用 someUrl 时检查服务器上的日志。

换句话说,AJAX 调用“成功”,但服务器返回 500 错误。

【讨论】:

  • 但是服务端方法还可以,永远不会崩溃。
  • 500 响应仅仅意味着服务器端出现了某种错误。服务器仍然会返回一个 HTTP 响应,并且与您的 JQuery 代码无关。事实上,您的数据库可能已经更新,但服务器端代码有一些其他错误。 (有关类似问题,请参阅此页面:stackoverflow.com/questions/1650958/…)。顺便说一句,PUT 请求应该是幂等的,如果您将行“插入”到数据库中,您可能应该使用 POST 请求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-24
  • 1970-01-01
相关资源
最近更新 更多