0

ローカル環境から jQuery を使用して ajax リクエストを作成しようとしています。

$.ajax({
        url: requestURL,
        dataType: "json",
        timeout: 120000,
        success: function(data){
            // do something

        },
        error: function(XMLHttpRequest, textStatus, errorThrown){
            console.log("Instants.loadGame: error loading games: error text: " + textStatus + "; error thrown: " + errorThrown);
        }
    });

私は dataType json と jsonp を使用してみました (それは他の誰もが問題を解決すると言っているようです) が、どちらの方法でもエラーが発生します。dataType json の場合、エラー応答には textStatus = "error" があり、errorThrown は空です。dataType jsonp を使用すると、エラー応答には textStatus = "parsererror" および errorThrown = "jQuery19002007321439859855_1361446807440 が呼び出されませんでした" が含まれます。

このコードは、リクエスト URL と同じドメインで実行されている場合に機能することを知っているので、ローカル環境で実行しているためだと推測できます。すべてを許可するように cross-domain.xml を設定しました。jQuery 1.9.0 を使用しています。

誰にもアイデアはありますか?私はこれをオンラインでよく見てきましたが、他の人を助けた解決策はどれも私にはうまくいかないようです...

ありがとう、ヘザー

4

1 に答える 1

0

「jQuery19002007321439859855_1361446807440 が呼び出されませんでした」のようなエラーが発生した場合、それは正しい jsonp 応答ではないためです。jsonp を使用する場合、サーバーは JavaScript (実際のスクリプト) である必要があり、そのスクリプトは URL の一部として提供される関数を呼び出す必要があります (この場合、関数の名前は jQuery19002007321439859855_1361446807440 で、jQuery は提供した成功ハンドラーにマップされます)。

最も可能性の高い原因は、サーバーがプレーン json データを返したが、それが機能しないことです。そのデータをスクリプトに渡す必要があります。したがって、サーバーへのリクエストは次のようなものを返す必要があります

var data = {"foo":1}; //your data here
jQuery19002007321439859855_1361446807440(data);
于 2013-02-21T11:56:35.913 に答える