Ajax简单的例子不工作

Ajax simple example not working

本文关键字:工作 简单 Ajax      更新时间:2023-09-26

我有一段时间没有使用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";
?>

谢谢

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中处理延迟对象的通用约定是使用donefail方法,所以这是一个选项。当然,$.ajax具有您可以指定的特定选项(successerrorcomplete—这是用于其他内容的),因此这也是一个选项。您还可以使用特殊的方法(.success(), .error(), .complete()),这些方法是$.ajax返回对象的一部分,但这些方法在1.8版本中已被弃用-请查看底部的.ajax文档- http://api.jquery.com/jQuery.ajax/。但这是我如何设置它的,它应该与您的没有任何不同,但可以捕获错误:

$.ajax({
    url: 'get.php',
    dataType: 'json'
}).done(data) {
    console.log("successful response");
}).fail(jqXHR, textStatus, errorThrown) {
    console.log("error: " + textStatus + ", " + errorThrown);
});

你确定ajax调用时jQuery已经加载好了吗?

尝试将其包装在doc ready中,以确保实际加载

$(document).ready(function () {
    alert("");
    var count = 0;
    $.ajax({
        url: 'get.php',
        dataType: 'json',
        }).alwaysfunction () {
           alert("call was hit");
        });
    });
});

如果get.php有问题,您的代码不会指出任何问题,jquery.ajax()只是吞下错误。

甚至在添加。failure回调例程到ajax调用之前,您应该能够检查web服务器上执行get.php的错误日志,任何与执行get.php相关的错误都会被记录下来。