2011-08-24 35 views
1

私の人生にとって、私はこれを動作させることができません。 test.phpファイルがこのアプリケーションと同じサーバー上にあるときにアラートを返しますが、別のドメインを指してもそれはまったく機能しません。関数は次のとおりです。投稿データをjquery .ajax経由で別のドメインに送信

 $.ajax({ 
    url: 'http://www.mycrossdomain.co.uk/test.php', 
    crossDomain: true, 
    dataType: 'json', 
    success: function(data) { 
     alert('success'); 
    } 
    }); 

誰も便利なプリンタを持っていますか?

答えて

8

つまり、仕事中はsame origin policyです。

post(つまり、キー値のペアをbodyとしたHTTP POSTリクエストメソッド)をXHR経由で別のドメイン、プロトコル、ポートに割り当てることはできません。

CORSで遊ぶことができますが、< IE8ではサポートされていません。

ただし、別のURLにフォームを送信することはできます。

+1

メリッサ、それは失礼でした。いいえ、できません。これはブラウザのセキュリティ機能で、通常のブラウザでは実行できません。 – Slavic

+0

@melissa jones私はちょうどあなたのコメントにフラグを付けました – emaillenin

+0

私はコメントが少し外にあることに同意しますが、あなたが行うことができる唯一のことは、別のURLにフォームを提出することが真実から遠いということです。彼女が外部URLを所有している場合、または外部ドメインがJSONPリクエストをサポートしている場合は、これを完全に実装することができます。それは本当のXHR要求ではありませんが、期待どおりにjQueryで引き続き機能します。問題は「クロスドメインXHR要求が可能です」ではなく、「jquery .ajaxを介して別のドメインに投稿データを送信する」ことです。これは、適切な条件が満たされれば完全に可能です。 – streetlogics

-1

この作業を行う唯一の方法は、JSがリクエストしたデータをサードパーティのサーバーに中継するJSが存在するサーバー上に「プロキシ」ページを作成し、その結果を直接あなたのスクリプト。ここの問題(以下のコメントで指摘されています)は、JSONPリクエストを別のドメインに送信することができますが、POSTリクエストでデータを送信することはできません。これは、すべての "JSONPリクエスト"があなたのDOMにスクリプトタグを挿入するためです。あなたが持つ唯一のオプションは、src urlスクリプトを介してGET経由でparamsを渡すことです。

+3

あなたの答えは* POST * ingですか?エスケープされていないユーザー入力を定期的にエコーしますか? – alex

+0

あなたはどういうことを言っていますか? jQueryを使ったことがありますか?それとも、これが実際に可能であることを認める気がしないので、議論のためだけに議論しようとしていますか? OPは、POSTの要件が何であるかについての言及もなく、要求はXHR要求でなければなりません。 – streetlogics

+2

質問のタイトルは、*提出**投稿データ** jquery *経由ですか? – alex

関連する問題