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