【发布时间】:2015-02-21 14:35:11
【问题描述】:
我有一个 >15k 电影的 json 对象,其中包含这样的 IMDb ID
0: ObjectID: "1."
IdIMDb: "tt2322441"
Title: "Fifty Shades of Grey"
Year: 2015
1: ObjectID: "2."
IdIMDb: "tt1617661"
(...)
我希望使用来自其他 api 的数据来完成这些数据
- 海报、运行时、流派、导演...可以在这里找到http://www.omdbapi.com/?i=tt0111161&plot=short&r=json
我的问题是:用来自这个 api 的数据完成我的数据的最有效方式是什么?
我打算只运行这个程序一次并存储结果,以便它可以遵守 api 限制。
我的第一个想法是做这样的事情
data.forEach(function (d, i) {
d.Poster = OMDbApi(d.IdIMDb);
...
}
function OMDbApi(i) {
$.ajax({
url:"http://www.omdbapi.com/?i="+i+"&plot=short&r=json",
crossDomain: true,
dataType: "jsonp",
success: function (response) {
return response.Poster;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = 1;
}
});
}
感谢您提供的任何帮助:-)
【问题讨论】:
-
由于 AJAX 的异步工作方式,您当前的设置将无法正常工作。
-
@Mouser 链接显示已启用 CORS,因此不需要 jsonp
-
@charlietfl 然后别介意第二部分。
标签: javascript ajax json api imdb