2012-01-27 5 views
0

別のドメインにajax POSTリクエスト(json)を作成する必要があります(後ですべてが同じドメインにありますが、localhostまだサーバーにアクセスできません)。別のドメインを呼び出すときにJQueryがオプションの代わりにPOSTリクエストを送信するようにする

注:現在、サーバーのコードを変更することはできません。

私はこの問題にはいくつかの解決策が見つかりました:

JSONP:Firefox用

CORSプラグインを動作しませんが(可能異なるドメインを強制的に):私は、POSTリクエストを送信した場合に動作しますが、jQueryの自体はあります最初のOPTIONSリクエストを作成します(おそらく異なるドメインを検出するため)。そして、私は問題があります。なぜなら、サーバーは認証を必要とするからです(OPTIONSを含むすべてのもの)。

POST要求のヘッダーに認証を送信していますが、JQueryはこれをOPTIONS要求のヘッダーに含めていないため、「バックグラウンドで」実行されているため追加できません。

  1. OPTIONS要求に認証ヘッダーを追加します。

    は実際に2つのソリューションがあるかもしれません。しかし、私がこの要求を自分で送っているわけではないので、私はどこで/それをやるべきか分かりません。

  2. 強制的にJQueryがOPTIONS要求をしないようにしますが、POSTを直接送信します(これはこのスレッドのタイトルです)。私はしばらく検索しましたが、何も見つかりませんでした。それは可能ですか?

私はリクエストを行うためにJQuery 1.7.1と$ .ajax({...})を使用しています。

ありがとうございます。

+0

可能な複製:http://stackoverflow.com/questions/1256593/jquery-why-am-i-getting-an-options-request-insted-of-a-get-request – zrvan

+0

重複していない - そこに彼らはGETを使用しています。私はPOSTを使用しています(jsonpはPOSTではなくGETで動作するようです)。また、質問も異なります。なぜOPTIONSを取得するのか尋ねることはありません.JQueryの動作(または代替ソリューション)を変更する方法を尋ねています。 – Ixx

答えて

1

これはトリッキーなものです。私は次のことをお勧めします。

ajax接続を同じドメイン上のファイルにします。別の場所にあるファイルへのcURL接続を行います。

投稿情報を送信し、認証ヘッダーも追加します。

あなたは最後の部分はここを見ることができます:http://php.bigresource.com/CURL-and-HTTP-Authentication--p8WkKqkq.html

単にグーグルで「ポストヘッダーはカール」その部分のお手伝いをする必要があります。

+0

それはうまくいった、ありがとう! – Ixx

関連する問題