用jQuery搜索google ajax - $ .getJSON()。有任何回应

时间:2010-09-01 01:36:21

标签: javascript jquery ajax google-ajax-search-api

我正在尝试使用google ajax搜索进行图片搜索 我正在使用jQuery。 所以低于我的代码

$.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

我不确定是什么。 帮帮我PLZ

1 个答案:

答案 0 :(得分:8)

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

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

You can see it working here,看看控制台。

如果jQuery在url中看到callback=?,它会用它生成的函数名称(这是你的function(data)回调)替换它,这就是当JSONP请求返回时运行的内容。有关相同信息,请参阅the $.getJSON() documentation

如果没有这个,它会尝试执行XmlHttpRequest,并被the same-origin policy阻止,因为它在另一个域上。