Javascript 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({

我已经有一段时间没有使用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的例子