Javascript Ajax简单示例不起作用
我已经有一段时间没有使用ajax了,现在我甚至不能让这个简单的程序工作,我做错什么了吗Javascript Ajax简单示例不起作用,javascript,jquery,ajax,Javascript,Jquery,Ajax,我已经有一段时间没有使用ajax了,现在我甚至不能让这个简单的程序工作,我做错什么了吗 <script type = "text/javascript" src = "jquery-1.9.1.min.js"></script> <script type = "text/javascript"> alert(""); var count = 0; $.ajax({
<script type = "text/javascript" src = "jquery-1.9.1.min.js"></script>
<script type = "text/javascript">
alert("");
var count = 0;
$.ajax({
url: 'get.php',
dataType: 'json',
success: function ()
{
alert("");
}
});
alert("");
</script>
<?php
echo "yay";
?>
警报(“”);
var计数=0;
$.ajax({
url:'get.php',
数据类型:“json”,
成功:函数()
{
警报(“”);
}
});
警报(“”);
谢谢将
数据类型设置为“json”意味着来自get.php
的响应被解析为json。如果JSON无效或响应为空,则请求将失败
如果URL不正确(找不到…HTTP 404错误),则请求将失败
请求的默认类型是“GET”,因此如果GET.php
不允许“GET”(出于某种原因),它将返回HTTP错误,请求将失败
如果服务器上有错误,它可能会返回HTTP 500错误,请求将失败
帮助调试的方法是将error
选项添加到$.ajax
调用中,并查看是否调用了该选项。相反,我使用.fail()
方法…它做同样的事情
当然,更直接的调试方式是打开浏览器控制台并查看AJAX请求。它应该显示关于它的多个细节,这可以帮助您确定任何问题
看起来好像AJAX请求从未被执行/发送,因为在中间你看不到<代码>警报<代码>。嗯,仅仅因为请求没有成功,并不意味着它被跳过了。请求可能失败的原因有很多(我在上面列举了几个)。而
.fail()
方法将帮助您确定原因
另外,jQuery中处理延迟对象的通用约定是使用done
和fail
方法,因此这是一个选项。当然,$.ajax
有特定的选项可以指定(success
、error
、和complete
——这是用于其他内容),所以这也是一个选项。您还可以使用特殊方法(.success()
,.error()
,.complete()
),这些方法是从$.ajax
返回的对象的一部分,但从版本1.8开始,这些方法已被弃用-请查看底部的.ajax
文档。但这里是我如何设置它的,它应该与您的没有任何不同,但会捕获错误:
$.ajax({
url: 'get.php',
dataType: 'json'
}).done(data) {
console.log("successful response");
}).fail(jqXHR, textStatus, errorThrown) {
console.log("error: " + textStatus + ", " + errorThrown);
});
将dataType
设置为“json”意味着来自get.php
的响应被解析为json。如果JSON无效或响应为空,则请求将失败
如果URL不正确(找不到…HTTP 404错误),则请求将失败
请求的默认类型是“GET”,因此如果GET.php
不允许“GET”(出于某种原因),它将返回HTTP错误,请求将失败
如果服务器上有错误,它可能会返回HTTP 500错误,请求将失败
帮助调试的方法是将error
选项添加到$.ajax
调用中,并查看是否调用了该选项。相反,我使用.fail()
方法…它做同样的事情
当然,更直接的调试方式是打开浏览器控制台并查看AJAX请求。它应该显示关于它的多个细节,这可以帮助您确定任何问题
看起来好像AJAX请求从未被执行/发送,因为在中间你看不到<代码>警报<代码>。嗯,仅仅因为请求没有成功,并不意味着它被跳过了。请求可能失败的原因有很多(我在上面列举了几个)。而
.fail()
方法将帮助您确定原因
另外,jQuery中处理延迟对象的通用约定是使用done
和fail
方法,因此这是一个选项。当然,$.ajax
有特定的选项可以指定(success
、error
、和complete
——这是用于其他内容),所以这也是一个选项。您还可以使用特殊方法(.success()
,.error()
,.complete()
),这些方法是从$.ajax
返回的对象的一部分,但从版本1.8开始,这些方法已被弃用-请查看底部的.ajax
文档。但这里是我如何设置它的,它应该与您的没有任何不同,但会捕获错误:
$.ajax({
url: 'get.php',
dataType: 'json'
}).done(data) {
console.log("successful response");
}).fail(jqXHR, textStatus, errorThrown) {
console.log("error: " + textStatus + ", " + errorThrown);
});
您确定在ajax调用被命中时jQuery已经加载了吗
尝试将其包装在文档中,以确保您已实际加载
$(document).ready(function () {
alert("");
var count = 0;
$.ajax({
url: 'get.php',
dataType: 'json',
}).alwaysfunction () {
alert("call was hit");
});
});
});
您确定在ajax调用被命中时jQuery已经加载了吗
尝试将其包装在文档中,以确保您已实际加载
$(document).ready(function () {
alert("");
var count = 0;
$.ajax({
url: 'get.php',
dataType: 'json',
}).alwaysfunction () {
alert("call was hit");
});
});
});
如果get.php有问题,您的代码将不会显示任何问题,jquery.ajax()只是接受错误
甚至在将.failure回调例程添加到ajax调用之前,您应该能够检查执行get.php的web服务器上的错误日志,与执行get.php相关的任何错误都将被记录 如果get.php有问题,代码不会显示任何问题,jquery.ajax()只需接受错误即可
甚至在将.failure回调例程添加到ajax调用之前,您应该能够检查执行get.php的web服务器上的错误日志,与执行get.php相关的任何错误都将被记录 那么,会发生什么?它看起来不像是最容易找出错误的示例。请分享get.php返回的内容?是json吗?@Barry Chapman它似乎跳过了整个ajax功能,你怎么知道它跳过了它?你检查过你的控制台了吗?你的控制台中有Javascript错误吗?发生了什么?它看起来不像是最容易让你弄明白什么是wro的例子