Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t get jQuery从另一个域获取JSON(使用JSONP)_Jquery_Json_Jsonp - Fatal编程技术网

Can';t get jQuery从另一个域获取JSON(使用JSONP)

Can';t get jQuery从另一个域获取JSON(使用JSONP),jquery,json,jsonp,Jquery,Json,Jsonp,我正在使用一个API(我制作了这个API,并可以在必要时进行修改),它可以输出一些JSON(使用PHP的JSON_编码,所以它是有效的)。我在另一个域的另一个网站上使用它来检索数据 不幸的是,我似乎无法让它发挥作用。请求被提出,并且数据被检索到,据我所知,从Chrome开发者工具(结果已经从API下载)。不过,似乎没有进一步的处理 请求URL如下所示(将“查询”替换为实际查询,在本例中为带名称): 结果如下所示(有效的JSON): 我用于获取此数据的jQuery如下所示: $(document

我正在使用一个API(我制作了这个API,并可以在必要时进行修改),它可以输出一些JSON(使用PHP的JSON_编码,所以它是有效的)。我在另一个域的另一个网站上使用它来检索数据

不幸的是,我似乎无法让它发挥作用。请求被提出,并且数据被检索到,据我所知,从Chrome开发者工具(结果已经从API下载)。不过,似乎没有进一步的处理

请求URL如下所示(将“查询”替换为实际查询,在本例中为带名称):

结果如下所示(有效的JSON):

我用于获取此数据的jQuery如下所示:

$(document).ready(function(){
    getSearch("Noah and the Whale");
});
$(document).ready((function(query) {
getSearch = function(query) {
    url = "http://gatekrash.com/api/v1?t=search&s=national&p=0&n=15&q=" + query + "&callback=?";
    $.getJSON(url,
        function(json) {
            alert("Success!");
        }
    );
}
})());
据我所知,这应该行得通。我在API所属的站点上使用基本相同的代码(减去回调=?)来检索数据,没有任何问题,因此我认为这可能是跨域的事情

在我看来,解决方案可能是如此明显和简单,但我还没有成功地让它发挥作用


有什么想法吗?

我想跨域可能有问题:


跨域JSONP需要回调才能工作

“p”代表“Padded”;即使用函数调用。为了绕过跨域策略,对于每个JSONP请求,jQuery在DOM中创建一个脚本标记,并将请求的URL作为源。JSON被加载到脚本标记中,然后执行,就像其他脚本一样。问题在于,执行一个对象并不能完成很多工作,相反,一个函数调用被包装在它周围,以便将该对象作为参数传递给该回调

JSON:(通常使用XMLHttpRequest等将文本直接加载到javascript中)

JSONP:(通常加载到脚本标记中以避免跨域策略)

后者将在加载JSONP时调用方法“nameOfCallback”,将对象作为唯一参数传递

对于未来的谷歌用户来说,这可能会提供更多帮助

[{"id":"4123","title":"Noah And The Whale","type":null,"start":"2011-03-30 19:30:00","end":"2011-03-31 00:30:00","venue":{"id":"154","name":"The Deaf Institute"},"place":{"id":"17374","name":"Manchester"},"source_count":"1","performers":""},{"id":"9317","title":"Noah And The Whale","type":null,"start":"2011-05-04 19:00:00","end":"2011-05-05 00:00:00","venue":{"id":"539","name":"Leeds Metropolitan University"},"place":{"id":"15473","name":"Leeds"},"source_count":"1","performers":""}]
$(document).ready(function(){
    getSearch("Noah and the Whale");
});
$(document).ready((function(query) {
getSearch = function(query) {
    url = "http://gatekrash.com/api/v1?t=search&s=national&p=0&n=15&q=" + query + "&callback=?";
    $.getJSON(url,
        function(json) {
            alert("Success!");
        }
    );
}
})());
{ "really":"simple", "example":"object" }
nameOfCallback({ "really":"simple", "example":"object" })