0

我正在尝试使用 JQuery 调用 google 自定义搜索 API 并收到访问控制来源错误。这有效:

<script>
function hndlr(response) {
    console.log(response);
    for (var i = 0; i < response.items.length; i++) {
        var item = response.items[i];
        $('#content').append(item.htmlTitle + "<br/>");
    }
}
</script>
<script src="https://www.googleapis.com/customsearch/v1?key=AIzaSyABvGyx3nwDJJtbaRe2_UZhakVSpcxfebU&cx=017576662512468239146:omuauf_lfve&q=perlin+noise&callback=hndlr"></script>

但是如果我尝试引入 jquery,它就不起作用:

var url = "https://www.googleapis.com/customsearch/v1?key=[MY_KEY]&q=perlin+noise&callback=hndlr";

$.ajax({
    url: url,
    dataType: 'json',
    success: function(data){
    console.log('data:' + data);
}

或者

$.get(url, function(data) {
    console.log(data)
});
4

2 回答 2

2

您正在执行跨域请求,因此您必须使用 JSONP。

http://davidwalsh.name/jsonp

我建议使用 $.getJSON

您可能希望设置清除回调,以便 JSONP 不会调用函数

于 2011-10-25T17:11:54.220 回答
2

这似乎有效:

$.ajax({
    type: 'GET',
    url: url,
    dataType: 'jsonp'
});
于 2011-10-25T18:22:27.390 回答