0

私はこの質問がされたことを知っていますが、私はそれを機能させることができません。

次の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ますが、リクエストのErrorコールバックを起動するエラーがあります。リクエストの応答は次のとおりです。

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

括弧によってJavaScriptが応答をオブジェクトとして解釈していることがわかりますが、これが取得している形式であることはわかっています。エラーが発生する前にこれを解析する方法はありませんか?

また、この情報を返すページのURLは次のとおりです。

http://<url>.com/dislike/123456?callback=successCallback&u=username&p=password&_123456789

Invalid labelこのエラーを除いて、すべてが完全に機能しています。誰かアイデアはありますか?

みなさん、よろしくお願いします

4

1 に答える 1

1

JSONPを処理できるサーバーは、コールバックパラメーター(WSによって異なるパラメーターになる可能性があります)を受け取り、それを応答に渡します。したがって、サーバーからの応答は次のようになります。

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

サーバーを制御できない場合、唯一のルートはプロキシです。同一生成元ポリシーを回避する方法については、クロスドメインの回答を参照してください。 $ .ajaxを使用して別のドメインのhtmlをロードできないのはなぜですか?

于 2013-01-02T19:58:32.330 に答える