我正在尝试进行ajax调用,并返回类似JSON对象的内容;
{
id: 6,
success: "true"
}
我的ajax电话是:
window.foobar = function(foo){
$.ajax({
url: "http://foobar.com/sites/foo/",
dataType: "jsonp",
success: function (data) {
alert(data);
},
error: function () {
}
});
}
此ajax调用是跨站点调用。
在chrome
上,它提供:Uncaught SyntaxError: Unexpected token :
在firefox
,它给出了:
invalid label
http://localhost:8080/sites/foo/?callback=jsonp1324336100888&_=1324336100894
Line 1
但是当我从same domain
打电话时,它运作正常。
答案 0 :(得分:0)
如果您声称支持JSONP,则需要实际支持它。您的代码是有效的JSON,但它无效Javascript:对JSONP请求的响应必须是有效的Javascript。 (确切地说,您的代码无效,因为{}
分隔块而不是对象文字。)
如果实现JSONP,则需要在调用callback
参数中URL中给出的名称的函数中包装数据。所以在这种情况下,您需要发布以下代码:
jsonp1324336100888({
id: 6,
success: "true"
});
显然,您需要调用的函数的确切名称取决于callback
URL参数。