我想使用谷歌图片API。在我使用json的过去,我只是使用ajax函数从我自己的服务器获取json。但现在我将从外部域获取它:
https://ajax.googleapis.com/ajax/services/search/images?q=fuzzy monkey&v=1.0
显然我无法使用js加载它,因为它不是来自内部URL。所以在这些情况下,如何使用json数据。你应该使用服务器端脚本通过CURL加载它还是有另一种方式?
答案 0 :(得分:3)
您可以通过添加callback
GET参数来使用JSONP。
https://ajax.googleapis.com/ajax/services/search/images?q=fuzzy%20monkey&v=1.0&callback=hello
然后你可以用jQuery $.getJSON()
来请求它。
$.getJSON('https://ajax.googleapis.com/ajax/services/search/images?q=fuzzy%20monkey&v=1.0&callback=?', function(response) {
console.log(response.responseData);
});
答案 1 :(得分:1)
您必须使用跨源资源共享(CORS http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing)
它并不像听起来那么复杂......只需适当地设置你的请求标题......在Python中它看起来像:
self.response.headers.add_header('Access-Control-Allow-Origin', '*');
self.response.headers.add_header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
self.response.headers.add_header('Access-Control-Allow-Headers', 'X-Requested-With');
self.response.headers.add_header('Access-Control-Max-Age', '86400');