JSONP请求在jQuery 1.4.2中。甚至不查询远程URL?

时间:2011-06-15 18:00:11

标签: php jquery jsonp

我这里有一个测试页面,应该只执行一次jQuery JSONP跨域请求,但是两次:

http://www.starcitygames.com/json_test.php

它应该在这里查询此页面以获取一些测试数据:

http://scg.im/ajax/fetch_recent_URLs.php?callback=fred

在我整个早上把头撞到墙上后,我从这个脚本,pro或con得到绝对零响应,我在fetch_recent_URLs脚本中放了一个mail()调用,只要加载了远程页面就给我发邮件。

事实证明,尽管脚本有多次加载,调整等,但它实际上从未调用过scg.im页面。该脚本没有被破坏,在JavaScript中没有返回任何致命错误等等 - 它实际上似乎并没有激发AJAX调用。

更令人困惑的是,常规JSON调用(到此域)工作正常。

脚本是这样的:

$.ajax({
        url: "http://scg.im/ajax/fetch_recent_URLs.php",
        type: "GET",
        dataType: "jsonp",
        error: function(xhr, status, error) {
            alert("error");
        },
        success: function(json) {
            alert("success");
        }
    });


$.getJSON("http://scg.im/ajax/fetch_recent_URLs.php?callback=?",  function(rtndata) {
        alert("Returned!"); 
});

两者均来自声称此作品的各种测试页。我也尝试过jQuery 1.6,更改了标题等,都遇到了同样的问题;无论我做什么,jQuery都不会真正调用页面。 (同样,我知道这是因为脚本每次加载时都会给我发邮件,当我加载此页面时它根本不会给我发电子邮件。)

知道为什么这不起作用?据我所知,我正在根据计划(以及这些脚本的大约五种变体来启动)。

编辑:已解决!我想出来了,这完全是愚蠢的。

如果您为FireFox启用了NoScript(并且您可以说应该),并且您不允许来自新域的脚本(在本例中为scg.im),那么NoScript将在它开始之前阻止域请求。安全性很好。彻底莫名其妙。

0 个答案:

没有答案