【问题标题】:Why isn't my request to the OMDb API working?为什么我对 OMDb API 的请求不起作用?
【发布时间】:2017-01-17 03:46:43
【问题描述】:

此程序将允许用户按电影名称搜索电影,并使用 OMDb API 返回(如果找到)电影名称、发行日期和海报(如果有)。 http://www.omdbapi.com/

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

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

但如果是这样,如何为 API 组合正确的 url?

在控制台中,它说的是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);
});

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

【问题讨论】:

    标签: javascript ajax http dom


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-11-28
      • 2022-10-23
      • 2021-11-12
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多