繁体   English   中英

jQuery ajax()调用失败

[英]jQuery ajax() Call Failing

我正在编写一个基于Web的应用程序,该应用程序通过REST风格的应用程序调用服务器以更新服务器中的特定对象。

这是我编写的javascript代码。

var sendUrl = url + "v1/items/" + itmId;
$.ajax({
    "type": "PUT",
    "url": sendUrl,
    //"data": {"name": nameVal, "description": descVal},
    "success": function() {
        alert('hai');  //refreshItems();
    },
    "complete": function (jqXHR, textStatus) {
        alert (textStatus);
    }
});

执行此代码后,服务器未收到任何请求。 浏览器未显示任何更新。

我正在使用Google Chrome浏览器。 因此,我查看了Chrome的Javascript控制台,该控制台显示了以下错误:

Chrome控制台出现错误

有没有可能解决此问题的方法?


编辑:

正如其中一项评论中所建议,我尝试查看“网络面板”。 似乎没有在致电Server。

这是此特定请求的屏幕截图: 在此处输入图片说明

图像很小。 状态为“(失败)”,类型为“待定”

如果服务器未配置PUT,则将导致内部服务器错误。 因此,这里没有发生这种情况。


编辑

在尝试了答案中给出的建议后,

这是代码:

var sendUrl = url + "v1/items/" + itmId;
$.ajax({
    "type": "PUT",
    "url": sendUrl,
    //"data": {"name": nameVal, "description": descVal},
    }).done(function ( ) {
        alert('OK');
    }).fail(function ( jqXHR, textStatus, errorThrown ) {
        console.log(jqXHR);
        console.log(textStatus);
        console.log(errorThrown);
    });

以下是已记录的对象:

在此处输入图片说明

有关http / 1.1状态代码的 jQuery Ajax函数 W3规范的 文档


首先,如jQuery文档中所述

弃用通知:从jQuery 1.8开始,不再使用jqXHR.success(),jqXHR.error()和jqXHR.complete()回调。 要准备将其最终删除的代码,请改用jqXHR.done(),jqXHR.fail()和jqXHR.always()。

此外,fail函数接受以下参数:

jqXHR, textStatus, errorThrown

由于出现错误,请尝试以下代码:

var sendUrl = url + "v1/items/" + itmId;
$.ajax({
    "type": "PUT",
    "url": sendUrl,
    //"data": {"name": nameVal, "description": descVal},

}).done(function ( ) {
    alert('OK');

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

这应该向控制台输出有关为何ajax调用不起作用的有用信息。

如果您的网络服务正常运行,则应返回http状态代码。 以下是一些常见的响应代码:

200 OK -> Everything is ok (it worked)
201 Created -> Ok too

400 Bad Request
401 Unauthorized
404 Not found

因此,基本上,您得到的响应应该反映出为什么它不起作用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM