此程序将允许用户通过其标题搜索电影,并使用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);
});
知道这里发生了什么吗?谢谢
答案 0 :(得分:0)
我从r: "json"
中删除了var movieOptions
,并生成了xhr。我不确定为什么会这样,但我认为结果可能是默认的json格式。我目前正在处理同一个项目,并在启动时遇到同样的问题。希望这有帮助!