【发布时间】: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