3


3

JsonPはOpera、Chrome、Safariと連携していますか?

私が構築しているWebサイトでは、(データベースが他のサーバー上にあるため)ログインするときに、* json padding *を使用して、ユーザーが正しい資格情報であるかどうかを確認します。

完全に災害になる* chrome、safari&opera *で試してみるまでは、flawlessly(ie7、ie8&FF)で動作しています。

    $.ajax({
  type: "GET",
  dataType: "jsonp",
  url: "http://someurl.com",
  data: aRequestData,
  cache: false,
  error: function (XMLHttpRequest, textStatus, errorThrown) {
    // typically only one of textStatus or errorThrown
    // will have info
    alert("Error occured textStatus=" + textStatus + " errorThrown=" + errorThrown);
  },
  success: function(data) {
    alert('success');
  }
});

プレーンでシンプルで、ブラウザウィンドウで動作しますが、驚いたことに、クロム、サファリ、オペラでは動作しませんでした。成功アラートに到達することはありませんでした。

誰もがこの問題を解決する方法を知っていますか?

ありがとう。

2 Answer


1


SafariおよびChrome用の組み込みの開発者ツールを使用して、リクエストからHTTPステータスコード200の応答が返されるかどうかを確認しましたか?

Chromeでは、[表示]メニューからこれらのツールにアクセスし、[リソース]タブを選択して、行われたすべてのリクエストを確認できます。 Safariを使用する場合は、何らかの設定でこれらのツールをアクティブにする必要があると思います。 画像:https://i.imgur.com/n6fVT.png [alt text]

また、jQueryを使用せずにバージョンを作成して、そこで発生したエラーを除外することもできます。呼び出しからステータス200が取得されない場合、jQueryがエラー関数を呼び出さずに失敗すると思うので、jQueryでJSONPを使用するためのドキュメントはあまり簡潔ではありませんエラー処理。

次のコンテンツを編集したバージョンでhtmlファイルを作成し、ブラウザーにロードします。

         function ws_results(obj) {
             alert(obj);
         }


0


問題は、ajax呼び出しが行われた "Thickbox"(jQuery Thickboxプラグイン)のhtmlページヘッダーに残っていました!

その場合、FirefoxやIEは繰り返しヘッダーを気にしませんが、WebKitエンジンは気にしません!

余分なヘッダーを削除するだけで、すべてが元通りになりました。

みんな、ありがとう!