为什么我对OMDb API的请求不起作用?

时间:2016-09-09 04:43:33

标签: javascript ajax http dom

此程序将允许用户通过其标题搜索电影,并使用OMDb API将返回(如果找到)电影的标题,发布日期和海报(如果可用)。 http://www.omdbapi.com/

我遇到了请求的问题。控制台中没有标记错误,我传递的查询字符串,如果复制并粘贴到浏览器中的另一个页面,则显示它正在获取数据。

虽然我没有得到任何结果。在chrome dev工具中,在网络下,它表示响应被发送到我自己的主目录:Request URL:file:///Users/mattcleary/Documents/Treehouse/movie_search/index.html?search=spiderman

但如果是这样的话,它如何将API的正确网址组合在一起?

在控制台中,它说的是jquery-3.1.0.js:9392 XHR finished loading: GET "http://www.omdbapi.com/?&s=inception&r=json",这肯定是对的吗?

这是我的代码:

// BUILD A MOVIE SEARCH APP WITH THE OMDB API

// Request data from the OMDb API to display movie information
$('form').submit(function(evt) {

    evt.preventDefault();

    var searchTerm = $('#search');
    var submitButton = $('#submit');

    var omdbAPI = 'http://www.omdbapi.com/?';
    var title = searchTerm.val();
    var movieOptions = {
        s: title,
        r: "json"   
    };

    // Display search results on the page
    function displayMovies(data){
        var movieHTML = '';

        // If a result comes back
        if(data.response === true) {
            $.each(data.items, function(i, movie) { 

                movieHTML += '<li><div class="poster-wrap">';

                // Show placeholder for poster if not available
                if(movie.Poster != "N/A"){
                    movieHTML += '<img class="movie-poster" src="' + movie.Poster + '"></div>';
                } else {
                    movieHTML += '<i class="material-icons poster-placeholder">crop_original</i>';
                }
                movieHTML += '<span class="movie-title">' + movie.Title + '</span><span class="movie-year">' + movie.Year + '</span></li>';
            });

        // If there aren't any results  
        } else if (data.Response == "False" || typeof data.Response == "undefined") {
            movieHTML += "<li class='no-movies'> <i class='material-icons icon-help'>help_outline</i>No movies found that match: " + title + "</li>";
        }

        // The data should load inside the #movies <ul>
        $('#movies').html(movieHTML);

    }

    $.getJSON(omdbAPI, movieOptions, displayMovies);
});

知道这里发生了什么吗?谢谢

1 个答案:

答案 0 :(得分:0)

我从r: "json"中删除了var movieOptions,并生成了xhr。我不确定为什么会这样,但我认为结果可能是默认的json格式。我目前正在处理同一个项目,并在启动时遇到同样的问题。希望这有帮助!