设置dataType
为“json”意味着来自的响应get.php
被解析为 JSON。如果它不是有效的 JSON 或响应为空,则请求将失败。
如果 URL 不正确(找不到...HTTP 404 错误),则请求将失败。
请求默认type
是“GET”,所以如果get.php
不允许“GET”(由于某种原因),它会返回一个HTTP错误,请求会失败。
如果服务器出现错误,它可能会返回 HTTP 500 错误,并且请求将失败。
有助于调试的方法是将error
选项添加到$.ajax
调用中并查看是否调用了该选项。相反,我使用该.fail()
方法......它做同样的事情。
当然,更直接的调试方式是打开浏览器的控制台并查看 AJAX 请求。它应该显示有关它的多个详细信息,可以帮助您确定任何问题。
看起来好像从未执行/发送 AJAX 请求,因为您看不到alert
中间的 。好吧,仅仅因为请求不成功,并不意味着它被跳过了。请求可能失败的原因有很多(我在上面提到了几个)。该.fail()
方法将帮助您确定原因。
此外,在 jQuery 中处理延迟对象的通用约定是使用done
andfail
方法,因此这是一种选择。当然,$.ajax
您可以指定特定选项(success
、error
和complete
- 用于其他内容),因此这也是一个选项。您还可以使用作为从返回的对象的一部分的特殊方法 ( .success()
, .error()
, ) ,但从 1.8 版开始不推荐使用这些方法 - 请查看底部的文档 - http://api.jquery.com/jQuery。阿贾克斯/ . 但这是我设置它的方式,它应该与你的没有什么不同,但确实会捕获错误:.complete()
$.ajax
.ajax
$.ajax({
url: 'get.php',
dataType: 'json'
}).done(data) {
console.log("successful response");
}).fail(jqXHR, textStatus, errorThrown) {
console.log("error: " + textStatus + ", " + errorThrown);
});