2011-12-30 6 views
5

Windows上でSafariを使用してドメイン間の要求を作成しようとしています。私のSafariのバージョンは5.1.2です。SafariとChromeでドメイン間のリクエストを許可しますか?サーバーの応答とコマンドラインの引数

これは古典的な質問です。私はChromeとSafariが、私はこの記事を読んだ

Access-Control-Allow-Origin: * 

対応している限りServerがfollowinヘッダーで応答として、クロスドメイン要求を許可する多くの場所でお読みください。 How to allow cross-domain requests in Safari? など多くの他のものもstackoverflowサイトにあります。

しかし、それらのどれも私の質問に答えません。

サーバーから必要なヘッダーを返送していてもChromeとSafariでクロスドメインAJAXリクエストを実行すると問題が発生します。

私は最終的に "--disable-web-security"でChromeを実行しました。その後、それは働いた。

私の質問:

1)私はSafariで何をしますか?同様のコマンドライン引数を使用しますか?

2)さらに重要なのは、私は誰か、私が行う必要があり、サーバーがヘッダーで応答としてクロスドメイン機能がある限り、デフォルトではChromeとSafariで許可されているかどうかを教えたり行ってくださいできることを確認して

A)サーバーは

b)は、ブラウザが適切な引数を指定して開始されたヘッダで応答します。

+0

クロスドメイン要求を正しく機能させるためには、詳細がたくさんあります。それはすべてあなたがしようとしている要求のタイプに依存します。あなたのリクエストについてもっと詳しく説明できますか? CORSリクエストの作成方法の詳細については、http://www.html5rocks.com/jp/tutorials/cors/ – monsur

答えて

4

問題が見つかりました。 CORSの詳細についてはhtml5rocks.com/en/tutorials/corsをご覧ください。私の要求がプリフライトリクエスト(OPTIONS)をトリガしていて、サーバがこれらのリクエストを適切に処理するように設定されていないことに気付きました。プリフライト要求を引き起こした理由は、JQueryを使用していて、カスタムヘッダーをリクエストに追加していたからです。この余分なヘッダーの追加を防止するためにコードを修正し、私のリクエストはもはやプリフライトリクエストを必要としませんでした。今、私はWebセキュリティを無効にする必要はありませんし、正常に動作します。

+2

こちらをご覧ください。余分なヘッダーは何ですか?私はまったく同じ問題を抱えているかもしれません。 – T3db0t

+0

上記のcorsドキュメントのリンクを確認してください。プリフライトリクエストが不要なときにチェックします。 firefugや同様のブラウザツールを使用してhttp通信を確認し、httpリクエストのすべてのヘッダーセクションを調べます。 – CEGRD

+2

これは明らかにカスタム(X- *)ヘッダーではなく、Content-Type要求ヘッダーです。「この値をapplication/x-www-form-urlencoded、multipart/form-data、text/plain以外に設定するとプリフライトリクエストをトリガーします。この狂気の正当性はどこにあるのでしょうか? – Marc

関連する問題