2017-04-05 3 views
0

この質問はしばらく私を悩ませていました。だからここにその話がある。 JSONの結果を生成するPHPファイルで構成され、別のドメイン名があります: はhttp://www.otherdomain.com/token.phpを言うことができますし、それが生成されます:異なるドメインへのアヤックスへの方法

{"token":"123455"} 

は、私が取得し、与えられた応答に基づいて行動するmywebsite.comからAJAXたいです。問題はotherdomain.com私の私のものではなく、私はそれのコンテンツを変更することはできません。

私はstackoverflowに関するいくつかの答えを探して、これがうまくいかない理由を説明します。

  1. CORSヘッダーを設定します。 ドメインは私のものではなく、私はそれについて何もできませんので、それは仕事をしませんでした。

  2. 私のサーバーをプロキシとして使用してデータを要求します。 (これは数回実行可能ですが、私のサイトの訪問者がますます多くのデータが1つのIPから私のサーバーのサイトに送信され、403エラーを引き起こす可能性があります)

  3. chromeまたはfirefoxのプラグイン。 (私がこのウェブサイトを使用している唯一の人であれば、このオプションは問題ありません)

  4. JsonPを使用してください。 jQuery getJSON works locally, but not cross domainに表示されていますが、答えはotherdomain.comファイルの応答データを変更する必要があることを示しています。ドメインを所有していないため、何もしません。

+1

あなたはすべての拠点をカバーし、それぞれの可能性を排除したようです。他に何が言いたいのか分からない。彼らのデータであり、他のサイトから簡単にアクセスできるようにしたくない場合は、必須ではありません。 –

+2

ドメインとのクロスオリジンリソース共有を許可するよう他のドメインに依頼してください。それ以外のものはちょうど陰鬱な習慣です。 – apokryfos

+0

JSONPが機能しない場合、あなたは運が悪いです。 – Tom

答えて

0

オプション番号4を正しく使用しないでください。 jsonpは、特にクロスドメイン要求のために作られています。だから、jsonpはあなたのソリューションです。あなたが立ち往生し、Googleマップや他のサービスを見て、彼らはjsonpの例を作業している。

関連する問題