我正在开发一个页面,该页面通过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
感谢达林在这方面的帮助。 上面的代码错误。 使用此代替:
$().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...
});
});
上面CodeGroover发布的解决方案中有一个小问题,即如果您更改文件,则必须重新启动服务器才能实际使用更新的文件(至少在我的情况下)。
所以搜索了一下,我发现这个要使用:
然后它将在投放
http://localhost:8000
。