我正在编写一个基于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控制台,控制台显示了此错误:
这个问题是否有任何可能的解决方案?
编辑:
正如其中一条评论中所建议的那样,我试着研究网络面板。它似乎没有调用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);
});
以下是已记录的对象:
答案 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
所以,基本上,你得到的回应应该反映出它无效的原因