我在我的网站上运行此代码以获取一组照片,但我总是得到错误。控制台日志显示“parsererror”。我做错了什么?
middle.php
<?php die(file_get_contents($_REQUEST['url'])); ?>
的script.js
//Flickr
var url = encodeURIComponent('http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=1408bff5f72a4b84b924d13e8562b6a2&photoset_id=77649470@N03&photoset_id=72157629903184261&format=json');
$.ajax({
url: "middle.php?url="+url,
dataType: "json",
success: function(){
console.log("yes");
},
error: function(jqXHR, textstatus, errorThrown){
console.log("nooo");
console.log( textstatus );
}
});
答案 0 :(得分:3)
如果您因跨域安全问题而遇到问题,则需要创建“中间人”页面。我将使用PHP作为我的例子。我将创建一个middle.php
来接受不同的域网址,获取文本/代码并返回它。我的JS会将此视为同一站点请求,所有这些都是花花公子。
<强> middle.php 强>
<?php die(file_get_contents($_REQUEST['url'])); ?>
如果PHP不是您使用的,您可以在自己的环境中应用相同的策略。
然后你的ajax调用将会是这样的..
var url = encodeURIComponent('http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=1408bff5f72a4b84b924d13e8562b6a2&photoset_id=77649470@N03&photoset_id=72157629903184261&format=json');
$.ajax({
url: "middle.php?url="+url,
dataType: "json",
success: function(){
console.log("yes");
},
error: function(jqXHR, textstatus, errorThrown){
console.log("nooo");
console.log( textstatus );
}
});
但是,我喜欢使用getJSON()
来获取JSON数据,而不是ajax()
$.getJSON("middle.php?url="+url, function(obj){
if (obj.photoset){
console.log("Success");
} else {
console.log("Error");
}
});