我正在开发一个页面,通过 jQuery 的 AJAX 支持从 Flickr 和 Panoramio 中提取图像。
Flickr 端工作正常,但是当我尝试$.get(url, callback)
从 Panoramio 运行时,我在 Chrome 的控制台中看到一个错误:
XMLHttpRequest 无法加载http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&callback=processImages&minx=-30&miny=0&maxx=0&maxy=150。Access-Control-Allow-Origin 不允许 Origin null。
如果我直接从浏览器查询该 URL,它工作正常。这是怎么回事,我能解决这个问题吗?我是否错误地编写了我的查询,或者这是 Panoramio 阻止我尝试做的事情?
Google 没有在错误消息中找到任何有用的匹配项。
编辑
下面是一些显示问题的示例代码:
$().ready(function () {
var url = 'http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&callback=processImages&minx=-30&miny=0&maxx=0&maxy=150';
$.get(url, function (jsonp) {
var processImages = function (data) {
alert('ok');
};
eval(jsonp);
});
});
您可以在线运行该示例。
编辑 2
感谢 Darin 在这方面的帮助。 上面的代码是错误的。 改用这个:
$().ready(function () {
var url = 'http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&minx=-30&miny=0&maxx=0&maxy=150&callback=?';
$.get(url, function (data) {
// can use 'data' in here...
});
});