打印出api回调时获取未定义/无结果

时间:2017-04-03 09:01:49

标签: javascript jquery ajax api

我正在尝试运行我要从电影数据库中搜索电影标题的脚本。我在控制台中得到结果,没有错误。但是在我的renderMovies函数中它应该在我的变量中存储API电影标题,情节等,但是当我在列表中打印它时,它或者给我什么(空白)或{{1} }。我是jQuery,AJAX和API的新手,因此我遵循指南,因此代码并非完全由我编写。

OBS:使用此undefined时未定义,但使用$("<td>" + plot + "</td>")时为空。您可以在renderMovies函数的中间找到该代码。

例如:我搜索电影&#39;阿凡达&#39;我得到两个结果。然而,这两个结果得到了存储&#34;在情节描述中为$("<td>").append(title),在标题中为空白。

undefined

1 个答案:

答案 0 :(得分:1)

我已重新排序您的函数和调用,因为某些变量未定义。 (谷歌浏览器 - &gt; F12(打开开发者控制台))

这会在按钮单击时返回响应。

    $(document).ready(function () {

function searchMovie() {
    var movieTitle = $("#movieTitle");
    var title = movieTitle.val();

    $.ajax({
        url: "http://www.myapifilms.com/imdb/idIMDB?title=" + title + "&token=b81c6057-20cf-4849-abc4-decbf9b65286&format=json&language=en-us&aka=0&business=0&seasons=0&seasonYear=0&technical=0&filter=2&exactFilter=0&limit=1&forceYear=0&trailers=0&movieTrivia=0&awards=0&moviePhotos=0&movieVideos=0&actors=0&biography=0&uniqueName=0&filmography=0&bornAndDead=0&starSign=0&actorActress=0&actorTrivia=0&similarMovies=0&adultSearch=0&goofs=0&keyword=0&quotes=0&fullSize=0&companyCredits=0&filmingLocations=0",
        dataType: "jsonp",
        success: renderMovies
    });
}

function renderMovies(movies) {
    console.log(movies);
    var movieInfo = movies.data.movies;

    var table = $("#results");
    var tbody = $("#results tbody");

    tbody.empty();

    for (var m in movieInfo) // Tar information från apin och stoppar in i egna variabler.
    {

        var movie = movieInfo[m];
        var title = movie.title;
        var plot = movie.simplePlot;
        var posterUrl = movie.urlPoster;
        var imdbUrl = movie.urlIMDB;

        var tr = $("<tr>");
        var titleTd = $("<td>").append(title); // blank
        var plotTd = $("<td>" + plot + "</td>"); // undefined on my website

        tr.append(titleTd);
        tr.append(plotTd);

        tbody.append(tr);

    }

}

$("#searchMovie").click(searchMovie);

});