1

我是 AJAX 新手,想弄清楚如何进行 JSONP 跨域调用。我不确定以下代码有什么问题。在 Firebug NET 控制台中,我可以很好地看到响应(完整的 HTML 页面),并且 HTML 选项卡也显示得很好。我收到指向 URL /?jsonp=jQuery17109722891130251606_1345069208686&_=1345069209298 的“语法错误”。

我在那里有一个错误部分,但只是读到 .ajax 中的错误函数在使用 JSONP 时不能正常工作?

这是代码:

$.ajax({
    url: 'http://www.google.com',
    type: 'GET',
    dataType: 'jsonp',
    jsonp: 'jsonp',
    crossDomain: true,
    complete:function(jsonp){
    $('#test').append(jsonp);
}
});

我在本地运行它,尝试过不同的 URL ......有什么想法或解释吗?谢谢!忘了提到 textStatus 也抛出了解析器错误?

4

1 回答 1

2

在这里

complete:function(jsonp){
    $('#test').append(jsonp);
}

您正在尝试将jqXHR对象附加到 DOM 元素。看看这个:http: //jsfiddle.net/TkUBz/

您需要做的是使用该success属性,如:

    /*complete*/
    success:function(data){
        $('#test').append(data);
    }

现在,您看到的语法错误是因为您正在加载google's包含 javascript 代码的首页,浏览器在将 HTML 数据附加到元素时尝试执行该代码,#test并且该 javascript 代码在您的页面上不起作用不同的原因,因此代码失败并且您会看到语法错误。

于 2012-08-15T22:31:46.027 回答