JQuery AJAX JSONP无效标签

时间:2013-01-02 19:52:27

标签: javascript jquery ajax json jsonp

我知道这个问题已被提出,但我无法让它发挥作用。

我执行以下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错误之外,一切正常。有没有人有任何想法?

先谢谢大家

1 个答案:

答案 0 :(得分:1)

可以处理JSONP的服务器采用回调参数(可以是不同的参数,具体取决于WS)并将其传递给响应。所以来自服务器的响应应该是:

successCallback({
"id":6220673,
"myScore":-1,
"msg":"Not loved"
})

如果您无法控制服务器,则唯一的路由是代理。有关绕过相同原始政策的信息,请参阅我的跨域答案。 What prevents me from using $.ajax to load another domain's html?