简单的Ajax错误?

时间:2012-08-15 22:27:27

标签: jquery ajax jsonp

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

我有一个错误部分,但是在使用JSONP时,只读了.ajax中的错误函数无法正常工作?

以下是代码:

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

我在本地运行,尝试过不同的网址......任何想法或解释?谢谢! 忘了提一下textStatus也在抛出一个parsererror吗?

1 个答案:

答案 0 :(得分: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代码由于不同的原因将无法在您的页面上工作,因此代码失败,您会看到语法错误。