我是一般的编程新手,当我打电话给moviedb.org api时,我无法将数据导入我的网络应用程序。我正在使用jquery,我已阅读所有文档,甚至是食谱,我仍然在努力使这项工作,我还检查了我的谷歌开发工具控制台,它显示调用成功:
Status Code:200 OK
[{"id":550,"name":"Fight Club","posters":[{"image":{"type":"poster","size":"original","height":1000,"width":675,"url":"http://hwcdn.themoviedb.org/posters/f8e/4b........
这是我的代码:
<script>
$.getJSON("http://api.themoviedb.org/2.1/Movie.getImages/en/json/ed7e2e092ca896037ce13d2bf11a08f1/550&callback=?",
function(data){
$.each(data, function(i,item){
$("<img/>").attr("src", item.image).appendTo("#images");
});
});
</script>
我认为我搞乱了回调功能,任何想法都会受到赞赏。 提前谢谢!
答案 0 :(得分:3)
简而言之,您所服务的服务器似乎不支持JSONP,这是必须存在的服务器端功能......而不是。我也没有在他们的API文档或论坛中看到过。该URL应为?callback=?
,因为它是唯一的查询字符串参数,如下所示:
http://api.themoviedb.org/2.1/Movie.getImages/en/json/<apikey>/550&callback=?
...但由于服务器不支持,因此仍无效。暂时不说:很多时候,使用API密钥的东西不支持JSONP(因为客户端会有密钥),如果API使用密钥限制访问...其他使用它只是为了跟踪可能不在乎。
答案 1 :(得分:2)
首先,你必须确保你的呼叫api支持jsonp(如果不是你会看到json,但你将无法用它做任何事情)。
二。如果你没有添加回调名称,那么你留下?callback =?然后jquery会在你的网址末尾添加一个随机数,很可能会导致问题。它看起来像这样:
http://someurl.com?callback=140989239
那只会伤害你。在标准的jsonp中,您实际上将json插入到<script>
标记中。为此,您需要执行以下操作:
var headID = document.getElementsByTagName('head')[0];
var newScript = document.createElement('script');
newScript.type = "text/javascript";
newScript.src = "enter your api url that you are calling here with a specified callback"
headID.appendChild(newScript);
答案 2 :(得分:1)
此功能“发布”调用服务器
$.post("http://api.themoviedb.org/2.1/Movie.getImages/en/json/ed7e2e092ca896037ce13d2bf11a08f1/550&callback=?",
function(data){
//After the server code run, this code is executed with the
//information of the response into the parameter 'data'
$.each(data, function(i,item){
$("").attr("src", item.image).appendTo("#images");
});
},
json");
正如您所看到的,我将相同的“每个”迭代函数放在一起。我不知道你是否正确地做了,因为我没有执行这段代码。但我强烈建议您尝试将代码执行到函数(数据)中...并使用警报(...),如下所示:
$.post("http://api.themoviedb.org/2.1/Movie.getImages/en/json/ed7e2e092ca896037ce13d2bf11a08f1/550&callback=?",
function(data){
alert(data);
},
"json");
有了这个,你真的知道什么是“数据”。
我希望你能提供帮助。