jQuery ajax()调用失败

时间:2013-02-21 00:22:32

标签: ajax jquery

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

这是我写的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);
    }
});

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

我使用谷歌浏览器作为我的浏览器。所以,我查看了Chrome的Javascript控制台,控制台显示了此错误:

Error from Chrome's Console

这个问题是否有任何可能的解决方案?


编辑:

正如其中一条评论中所建议的那样,我试着研究网络面板。它似乎没有调用Server。

这是此特定请求的屏幕截图: enter image description here

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

如果服务器未配置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);
    });

以下是已记录的对象:

enter image description here

1 个答案:

答案 0 :(得分:6)

Docs for jquery Ajax function W3 specs regarding http/1.1 status codes


首先,如jQuery文档中所述

  

弃用通知:jqXHR.success(),jqXHR.error()和   从jQuery 1.8开始,不推荐使用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

所以,基本上,你得到的回应应该反映出它无效的原因