[英]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控制台,该控制台显示了以下错误:
有没有可能解决此问题的方法?
编辑:
正如其中一项评论中所建议,我尝试查看“网络面板”。 似乎没有在致电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.