2

我正在尝试使用 jQuery 使用 google ajax 搜索进行图像搜索。所以在我的代码下面

$.getJSON('http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=hello', function(data) {
    console.log(data);
});

控制台打印 NULL 并且我的 xhr 信息是

request URL:http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=hello
Request Headers
Accept:application/json, text/javascript, */*
Cache-Control:max-age=0
Origin:http://example.local
Referer:http://example.local/thread/create
User-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.127 Safari/533.4

我不知道什么是黄。请帮帮我

4

1 回答 1

8

您的 URL 需要稍作调整才能触发 JSONP,&callback=?在最后添加,如下所示:

$.getJSON('http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=hello&callback=?', function(data) {
  console.log(data);
});

你可以看到它在这里工作,看看控制台。

如果 jQuerycallback=?在 url 中看到 a ,它会将其替换为它生成的函数名(这是您的function(data)回调),这就是 JSONP 请求返回时运行的内容。有关相同信息,$.getJSON()请参阅文档

如果没有这个,它会尝试执行 XmlHttpRequest,并被同源策略阻止,因为它在另一个域上。

于 2010-09-01T01:40:30.077 回答