Javascript jQuery+;JSONP是否返回空数据?

Javascript jQuery+;JSONP是否返回空数据?,javascript,jquery,json,jsonp,Javascript,Jquery,Json,Jsonp,由于某些原因,我的脚本不会从从第三方站点获取的JSON文件返回任何数据 这是密码 $(document).ready(function() { var url = "http://konachan.net/post/index.json?limit=20&tags=hatsune_miku"; $.getJSON(url + "&callback=?", null, function(items) { for(i in items) {

由于某些原因,我的脚本不会从从第三方站点获取的JSON文件返回任何数据

这是密码

$(document).ready(function() {
    var url =  "http://konachan.net/post/index.json?limit=20&tags=hatsune_miku";
    $.getJSON(url + "&callback=?", null, function(items) {
        for(i in items) {
            item = items[i];
                        $("#content").append('<div class="product" id="product-' + item.id + '"><img src="' + item.preview_url + '" width="135" height="138"/><div class="title">' + item.author + '</div><div class="description" style="overflow:hidden;">' + item.tags + '</div><div class="clear"></div></div>');
        }
    });
});
$(文档).ready(函数(){
变量url=”http://konachan.net/post/index.json?limit=20&tags=hatsune_miku";
$.getJSON(url+“&回调=?”,null,函数(项){
(i)在项目中{
项目=项目[i];
$(“#内容”).append(“”+item.author+“”+item.tags+“”);
}
});
});
怎么了

编辑:PHP Curl仍然没有工作:

我用回调参数点击了url,没有看到函数名中包装的JSON

JSONP的工作方式是,当您传递回调函数名时,服务器应将JSON封装在该函数中,以便在从服务器返回JavaScript时,调用回调函数,并将JSON数据作为参数传入

// "test" was the callback parameter I used
test({ "my": "data" , "returned_from" : "server" });
在后台,JSONP使用脚本元素从远程服务器下载JavaScript(JSON)

由于url中的JSON没有封装在函数名中,因此您无法轻松地跨域访问它。下面是详细说明的示例

也许您可以查看该特定资源的文档,因为很可能他们使用的参数不是“callback”,而是指定一个回调函数来“pad”数据

如果没有参数将结果包装成函数名,则可以使用服务器端代理获取JSON响应并将其包装成函数,然后返回到客户端。

我使用回调参数点击url,但没有看到包装成函数名的JSON

JSONP的工作方式是,当您传递回调函数名时,服务器应将JSON封装在该函数中,以便在从服务器返回JavaScript时,调用回调函数,并将JSON数据作为参数传入

// "test" was the callback parameter I used
test({ "my": "data" , "returned_from" : "server" });
在后台,JSONP使用脚本元素从远程服务器下载JavaScript(JSON)

由于url中的JSON没有封装在函数名中,因此您无法轻松地跨域访问它。下面是详细说明的示例

也许您可以查看该特定资源的文档,因为很可能他们使用的参数不是“callback”,而是指定一个回调函数来“pad”数据


如果没有参数将结果包装到函数名中,则可以使用服务器端代理获取JSON响应并将其包装到函数中,然后返回到客户端。

因为从第三方站点返回的代码显然不是为JsonP调用而生成的-它只返回一个包含数据的数组,如
[]
。但是它应该返回这个数组并调用一个js函数,这样脚本就可以访问数据,比如
myCallbackFunc([])


请在此页面上搜索
jsonp
以获取更多信息。

因为从第三方网站返回的代码显然不是为jsonp调用生成的-它只返回一个包含类似
[]
的数据的数组。但是它应该返回这个数组并调用一个js函数,这样脚本就可以访问数据,比如
myCallbackFunc([])


有关更多信息,请在此页面上搜索
jsonp

--加载此JSFIDLE时,请查看控制台中的错误数据。-加载此JSFIDLE时,请查看控制台中的错误数据。好的,我需要做什么才能将其转换为XML格式?只需在.xml的url中替换.json,否则它会面临与json相同的问题吗?@cl-您仍然面临同样的问题。有了XML,您就更加有限了。您不能进行跨域AJAX调用。您唯一的选择要么是隐藏在文档中(即查找用于获取填充/函数包装器的参数),要么使用服务器端代理获取JSON并在其周围包装函数。好的,我需要做什么才能将其转换为XML格式?只需在.xml的url中替换.json,否则它会面临与json相同的问题吗?@cl-您仍然面临同样的问题。有了XML,您就更加有限了。您不能进行跨域AJAX调用。您唯一的选择要么是隐藏在文档中(即查找用于获取填充/函数包装器的参数),要么使用服务器端代理获取JSON并在其周围包装函数。JSON没有回调函数,因此我仅将其命名为“页面”、“限制”和“标记”如何使用服务器端代理?在这种情况下,服务器端代理是一个好主意,因为您的资源似乎不支持跨域ajax CAL/jsonp。基本上(在您的服务器上),您将加载url数据并将其打印到屏幕上,这样您就不必跨域通过javascript获取它。然后,一旦您编写了将其打印到屏幕上的代码,您就可以在
getJSON
调用中使用您的url。所以本质上,JavaScript调用服务器,然后服务器转到konachan为您获取JSON数据。@jmort253好的,我迷路了。。在这一点上,可能碰到了一堵砖墙,这里有一个代码粘贴:为了将资源卷曲到PHP中,但没有Luckt,这里没有json的回调函数,所以我只需要“页面”、“限制”和“标记”就可以了。我将如何使用服务器端代理?在这种情况下,服务器端代理是一个很好的主意,因为您的资源似乎不支持跨域ajax CAL/jsonp。基本上(在您的服务器上),您将加载url数据并将其打印到屏幕上,这样您就不必跨域通过javascript获取它。然后,一旦您编写了将其打印到屏幕上的代码,您就可以在
getJSON
调用中使用您的url。所以本质上,JavaScript调用服务器,然后服务器转到konachan为您获取JSON数据。@jmort253好的,我迷路了。。在这一点上,可能遇到了麻烦,这里有一个代码粘贴:用于将资源卷曲到PHP中,但没有运气