我知道这个问题已被提出,但我无法让它发挥作用。
我执行以下AJAX请求:
function dislikeMeme(memeId) {
$.ajax({
dataType: "jsonp",
url: "http://<url>.com/dislike/" + memeId,
data: {
u: "username",
p: "password"
},
jsonpCallback: 'successCallback'
});
}
function successCallback(data) {
alert("Test"); // Not firing because of previous 'Invalid label' error
};
查看firebug我看到请求成功,但是有Invalid Label
错误触发了请求的错误回调。请求的响应如下:
{
"id":6220673,
"myScore":-1,
"msg":"Not loved"
}
我看到括号正在导致JavaScript将响应解释为一个对象,但我知道这是我正在检索的格式,在它导致错误之前是不是要解析它?
我还看到返回此信息的页面的URL是:
http://<url>.com/dislike/123456?callback=successCallback&u=username&p=password&_123456789
除了Invalid label
错误之外,一切正常。有没有人有任何想法?
先谢谢大家
答案 0 :(得分:1)
可以处理JSONP的服务器采用回调参数(可以是不同的参数,具体取决于WS)并将其传递给响应。所以来自服务器的响应应该是:
successCallback({
"id":6220673,
"myScore":-1,
"msg":"Not loved"
})
如果您无法控制服务器,则唯一的路由是代理。有关绕过相同原始政策的信息,请参阅我的跨域答案。 What prevents me from using $.ajax to load another domain's html?