我是AJAX调用的新手,我想模拟rottentomatoes搜索页面。我收到了正确的JSON文件,但它不能加载到我的浏览器上。我一直在研究,但还没有找到解决方案。任何帮助将不胜感激。
这是我的代码。
$(document).ready(function() {
var apikey = "qvq7jf4n29fv8m8pxqqyxsxg";
var baseUrl = "http://api.rottentomatoes.com/api/public/v1.0";
var moviesSearchUrl = baseUrl + '/movies.json?apikey=' + apikey;
$('form').submit(function (evt) {
var $submitButton = $('#submit');
var $searchField = $('#search');
evt.preventDefault();
$searchField.prop("disabled",true);
$submitButton.attr("disabled", true).val("searching....");
var query = $searchField.val();
var rotten = moviesSearchUrl + '&q=' + encodeURI(query);
$.ajax(rotten,
function(data){
if (data.items.length > 0) {
$.each(data.items,function(i,movie) {
movieHTML += '<li class="grid-25 tablet-grid-50">';
movieHTML += '<a href="' + movie.title + '" class="image">';
movieHTML += '<img src="' + movie.posters.original + '"></a></li>';
}); // end each
} else {
movieHTML = "<p>No photos found that match: " + animal + ".</p>"
}
$('#movies').html(movieHTML);
$searchField.prop("disabled", false);
$submitButton.attr("disabled", false).val("Search");
}); // end getJSON
}); // end click
}); // end ready
答案 0 :(得分:3)
你只需要调整.ajax来使用jsonp。
这是工作jsfiddle http://jsfiddle.net/hvtz7kfv/2/
$.ajax({
dataType: "jsonp",
url: rotten,
success: searchCallback
});
答案 1 :(得分:0)
不是直接向烂番茄发送ajax请求,而是向您的服务器发送请求,让您的服务器将请求发送到烂番茄,然后将该响应转发回您的客户端。我不认为您应该使用公共API来做到这一点。
您使用的是Chrome吗?我认为Chrome有一些涉及CORS和localhost的奇怪限制。