0

jQuery 1.8.3 Ajax 関数を使用してクロスオリジン リクエストを作成しています。以下のコードは常に "fail" を返しますが、コンソール ログには Ajax リクエストごとに "200 OK" が記録されます。ログが 200 のステータスを示しているとすると、成功関数を実行する必要はありませんか? ステータス 200 が返されたときに成功関数を実行するにはどうすればよいですか?

$().ready(function() {
    var checkIt = function(checkURL, resultP) {
    $.ajax({
      url: checkURL,
      type: 'GET',
      cache: false,
      success: function() {
        $(resultP).text("ok");
      },
      error: function() {
        $(resultP).text("fail");
      }
    });
  };
  checkIt("https://firstURL", "#p1p");
  checkIt("https://secondURL", "#p2p");
  checkIt("https://thirdURL", "#p3p");
)};

コンソール ログには次のように表示されます (各要求には 200 の応答があります)。

[10:03:37.898] GET https://firstURL [HTTP/1.1 200 OK 141ms]
[10:03:37.898] GET https://secondURL [HTTP/1.1 200 OK 141ms]
[10:03:37.898] GET https://thirdURL [HTTP/1.1 200 OK 141ms]

ありがとう!

4

2 に答える 2

0

データを取得しようとしているURLが200にヒットした可能性がありますが、ヒットしようとしているサーバーのエラーまたは問題により、クロスドメインリクエストが許可されないため、「失敗」します。

于 2013-01-07T16:51:53.007 に答える
0

クロスドメイン コールであるため、これは機能しません。

これを回避する

JavaScript

関数を作成する

function getMyData(data) {
    alert(data);
    //Do the magic with your data
}

サーバ側

サーバー側では、データを関数構文内にラップします

getMyData("Enter your data here");

JavaScript

次に、スクリプト タグを作成し、クロスドメイン ページへのリンクを追加します。

 <script type="text/javascript"
         src="cross ref url">
 </script>

参考:ウィキペディア

編集:別のオプションは、ドメインにプロキシを作成することです。つまり、クロスドメイン ページを内部的に呼び出すページをドメイン内に作成し、同じデータを Ajax 呼び出しに返します。

于 2013-01-07T17:39:48.237 に答える