2011-06-21 11 views
2

ページがあります:http://renren.com/echo(本物ではない)のようなJSON形式のデータが返されます:この状態でクロスドメインAjaxを実行する方法は?

{"candidate":[{"id":251574647,"name":"Jack"}]} 

は、今私はhttp://my-server.comでだと私はクロスドメインAjaxリクエストをしたいと思いますが。
http://renren.comのページが表示するためにログインする必要があるため、私はサーバープロキシを使用できません。
返されたJSONデータには関数呼び出しや代入がないため、JSONPを使用することはできません。
私は、renren.comのページを変更する権利はありません。この状態で私は何ができますか?

+0

あなたはrenren.comを管理することはできませんが、データに対するサードパーティのアクセスを承認していますか?もしそうなら、?callback = fooクエリパラメータをリクエストに追加しようとしましたか?リクエストにコールバックパラメータがある場合、暗黙的にJSON-Pをサポートするサーバーがいくつか見られました。 – monsur

+0

私はそれを試みましたが、コールバックはありません。 – wong2

答えて

0

Brian Chess et。 al。この場合には、次の論文の中にあるかもしれません。要するに、着信JSONを処理するために使用されるjavascriptセッターをオーバーライドします。

https://www.fortify.com/downloads2/public/JavaScript_Hijacking.pdf

JSON配列が クライアントに到着すると、それは悪質なページの コンテキストで評価されます。 JSONの評価を確認するには、悪意のあるページ 新しいオブジェクトを作成するために使用される定義済みのページが再定義されました。このように、 悪意のあるコードには、 というフックが挿入されており、各オブジェクトの の作成にアクセスし、 悪意のあるサイト にオブジェクトの内容を戻します。

0

プロキシページがなくても、データが返される方法を制御できるとは思いません。

0

Apache's mod_proxyを使用すると、ドメインの装飾としてこのリクエストを実行できます。 http://renren.com/echoのプロキシとしてhttp://my-server.com/renrenなどのURLを設定します。

これが完了したら、AJAXリクエストをhttp://my-server.com/renrenに送信し、ドメイン間の制限を回避できます。

+0

renren.comが認証を必要とする(クッキーに保存されている)場合は、このイベントを処理できますか? – wong2

+0

@ wong2:このメソッドは、cookieベースの認証をサポートしません。なぜなら、Apacheはブラウザを使用してrenren.comへの接続をオープンしないからです。しかし、他の認証方法がサポート(トークンなど)の場合、必要に応じてmod_proxyを設定することができます。 –

-1

クロスドメインの場合は、AJAXを使用することはできません。別のドメインのファイルからデータを呼び出すには、独自のPHP/ASPスクリプトを使用してcURL型の呼び出しを使用する必要があります。

+0

クッキーはいかがですか? – wong2

関連する問題