0

jquery ajaxを使用してクロスドメイン取得を行っていますが、エラー関数のステータスとして成功しています。サービスからデータが返されることを期待していますget:

document.write("<div class=\"display_archive\"><div class=\"campaign\">07\/18\/2013 - <a href=\"http:\/\/us6.campaign-archive2.com\/?u=c7b9b2f23eb4f63fgfgf5ac4f&id=99e1f5f249\" title=\" Newsletter #3\" target=\"_blank\">Newsletter #3<\/a><\/div>");

しかし、私が得るものはerror function

Object { readyState=4, status=200, statusText="success"}

私のコード

getResource : function ( containerSelector,serviceURL ) {
    $.ajax ({
        type : "GET",

        dataType: 'jsonp',

        jsonpCallback: 'jsonCallback',

        url : serviceURL,

        headers : {
            "Accept" : "application/json",
            "Content-Type" : "application/json"
        },

        success : function successData(resourceObj) {
            console.log("success ");
            console.log(resourceObj);
        },

        error : function errorData(resourceObj) {
            console.log("error ");
            console.log(resourceObj);
        },

    })
},

ここで何か不足していますか?助けてください

4

2 に答える 2

1

JSONPを使用するCross-domain requests

クロスドメイン リクエストは直接許可されないためです。ただし、 JSONPと呼ばれる一般的に使用される手法があり、script タグを使用してこの制限を回避できます。基本的に、既知の名前でコールバック関数を作成します。

function getData(data) {       
}

次に、サーバーは JSON データを次のように関数呼び出しでラップします。

getData({"the": "data"});

scriptそして、ページにタグを追加して、クロスドメイン サーバーを「呼び出し」ます。jQuery は、これらすべてをそのajax関数にエレガントにまとめています。

私がときどき使用しなければならなかったもう 1 つの手法は、iframe を介したドキュメント間の通信です。postMessageを介して、制限された方法で、1 つのウィンドウを別のウィンドウ (クロスドメインであっても) と通信させることができます。最近のブラウザのみがこの機能を備えているため、ハッカーに頼らない限り、すべての場合にこのオプションを実行できるわけではないことに注意してください。

参照 1

参照 2

jQuery AJAX クロスドメイン

于 2013-09-25T14:36:54.917 に答える
1

追加してみてください:

crossDomain: true,

それ以外のエラーはここには表示されません。

于 2013-09-25T14:29:20.133 に答える