jQuery $ .getJSON http请求失败,同时手动完成相同的请求

时间:2014-02-27 09:19:10

标签: php jquery ajax json http

好的,我真的被困在这里了。

这是我用来测试我写的小脚本的小测试文件:

<script src="https://code.jquery.com/jquery-1.10.1.min.js"></script>

<script>
$.getJSON(
    "/php/banners/check_advertorial.php", 
    { ID : 78 },
    function(data) {
        console.log("callback");
        console.log(data);
        if(data)
            alert("yay");
        else
            alert("nay");   
    }
);
</script>

这就是check_advertorial.php的样子,我将其简化为测试目的。

<?php
    header('Content-Type: application/json');

    echo json_encode(true); 
?>

所以我在Chrome中监控请求,并且对check_advertorial的调用失败,没有响应。甚至没有错误代码。但是,如果我复制请求URL,并将其粘贴到浏览器中,我会得到一个成功的请求,并打印“true”。

是什么给出了?

更新: 我已在不同的浏览器中测试过它。

  • Chrome:原始测试平台
  • Chrome Canary:无变化
  • Firefox:按预期工作
  • Internet Explorer 10:无变化

更新2: 正如HüseyinBABAL指出的那样,ABP阻止了请求,因为它中有“adsorial”这个词。

1 个答案:

答案 0 :(得分:-1)

向您的查询添加状态检查代码,以便检测您的请求是否失败;

var jqxhr = $.getJSON( "/php/banners/check_advertorial.php", {ID:78}, function(data) {
})
  .done(function() {
    console.log("callback");
            console.log(data);
            if(data)
                alert("yay");
            else
                alert("nay");  
  })
  .fail(function(jqxhr, textStatus, error) {
    var err = textStatus + ", " + error;
    console.log( "error occured: " + err );
  });

修改:还要确保您没有使用adblock插件