TEL:400-8793-956
当前位置:程序、服务器

OMDb API:努力使其正常运行

提问者: 近期获赞: 浏览人数: 发布时间:2021-03-06 10:10:35

 问:嗨,我目前正在学习JavaScript课程,因为这不是我在uni领域最强的技能。Dave是一位了不起的老师,我已经完成了所有AJAX和JQuery模块的工作。建议我尝试使用OMDb API拨打电话,该API会在您拨打电话时返回电影上的JSON数据

 
这是我当前的代码
 
$ (文档)。准备好了(function (){ 
var movieApi = “ http://www.omdbapi.com/?jsoncallback=?” ; var movieApiSettings = { t :“黑衣人” ,类型:“电影” ,西红柿:true ,r :“JSON” };功能displayMovie (数据){ VAR movieHTML = '<UL>' ; $ 。每个(数据
 
      。项目,功能(i ,标题) { 
movieHTML + = '<li>' ; movieHTML + = 'title:' + title 。title + 'Year:' + title 。年; movieHTML + = '</ li>' ; }); //在每个$ ('#displayHere' )结尾。html (movieHTML ); } $ 。getJSON (movieApi ,movieApiSettings          
 
     , displayMovie ); 
}); 
为了克服跨源策略,我需要将返回的数据转换为JSONP,我认为我已经使用jsoncallback =?了。在movieApi变量中的一部分,但是这没有返回任何内容,只是JavaScript控制台中的get回调中的错误。
 
如果有人有什么想法可能出什么问题,我将不胜感激!谢谢!
 
 
答:这里有几个问题...
 
jQuery和OMDB文档都将JSONP参数定义为“回调”,而不是“ jsoncallback”。您也可以只在设置对象中指定此设置(请参见下文)。因此,您的第一行可能就是:
 
var movieApi =“ http://www.omdbapi.com”;
从displayMovie函数中,您似乎希望得到一个搜索结果列表,但是OMDB中的t =参数返回一个特定的标题(而不是数组),这将使您的$ .each调用陷入混乱。您可能在执行搜索的s =之后:
 
var movieApiSettings = {
   s:“黑衣人”,
  键入:“电影”,
  西红柿:true,
   r:“ json”, 
  回调:“”
 };
最后,可以使用响应对象中的“搜索”键(而不是“项”)来访问搜索结果,并且您需要小心指定要提取的属性名称,使其与响应中出现的属性完全相同(I ve下面使用方括号表示法只是为了清楚):
 
函数displayMovie(data){
   var movieHTML =' < ul > ';
  $ .each(data ['Search'],function(i,title){
     movieHTML + =' < li > ';
     movieHTML + ='title:'+ title ['Title'] +'Year:'+ title [' Year'];
     movieHTML + =' </ li > ';
   }); //结束每个
  $('#displayHere')。html(movieHTML);
 
我希望这有帮助!当我在控制台中进行测试时,它对我有用,所以请告诉我您是否仍然有问题。
上一篇: 服务器错误500
下一篇: 便利初始化程序中的错误:无法使用类型为string,price的参数列表调用clothing.init