【问题标题】:jQuery $.getJSON http request fails, while making the exact same request manually worksjQuery $.getJSON http 请求失败,而手动发出完全相同的请求
【发布时间】:2014-03-30 14:46:07
【问题描述】:

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

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

<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üseyin BABAL 指出的那样,ABP 阻止了该请求,因为其中包含“advertorial”一词。

【问题讨论】:

  • 您的控制台没有错误?也许添加.fail 看看你会得到什么。因为它可能会失败。
  • 只是说 GET 请求失败的那个。
  • 您确定您的网址正确吗?如果您在浏览器中测试 URL,您会输入什么?这个页面是否显示在您网站的根目录中?
  • @Nikzilla,我在回答中也说过,您是否在浏览器上使用了 adblock 插件?
  • @Nikzilla Upvote 并确认答案将不胜感激:)

标签: php jquery ajax json http


【解决方案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 插件

【讨论】:

  • 为什么需要在文档中准备好?它不需要等待任何东西。
  • 是的,没有任何改变,只是经过测试。
  • 因为你的函数没有被触发。您需要通过在加载文档时、当文档 rady 时将其设置为偶数来触发它,或者将其分配给元素作为事件。如果你不想在文档准备好之前运行你的脚本,你需要使用上面的代码
  • @HüseyinBABAL 您的解决方案毫无意义。 &lt;script&gt; 块中的所有内容都会在页面加载时执行。如果您希望将某些内容延迟到该事件发生之前,您只需将其放入事件处理程序中。
  • 如果您需要在文档中准备好代码,$(document).ready() 表达式如何被执行,因为它没有在文档中准备好in
猜你喜欢
  • 2014-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-03
  • 2019-05-09
  • 2015-04-10
相关资源
最近更新 更多