2011-10-06 5 views
14

サイトには、https://サイトに公開されているサードパーティのJSON APIにアクセスする必要があります。私はWays to circumvent the same-origin policyを読みましたが、方法が私のために適切でありません説明したようだ。サードパーティのhttpsサイトで同じ起点ポリシーを回避するにはどうすればよいですか?

  1. document.domainを方法 - のみのサブドメイン上で動作します。
  2. クロスソースリソース共有方法 - サーバーの協力が必要です。
  3. window.postMessageメソッド - ポップアップウィンドウを開く必要があるようですか?
  4. リバースプロキシメソッド - 可能な解決策ですが、設定するのが難しいようです。
  5. http://anyorigin.com - SSLをサポートしていないようです。

これはこれですか?私は解決策4を実装する必要があります。これはかなり複雑に思えますが、何か不足していますか?

+3

をあなたがあなた自身のドメインとの定期的なPHPページで他のサイトからの結果をカールすることはできません:

$.ajax({ crossOrigin: true, url: url, success: function(data) { console.log(data); } }); 

あなたがここで続きを読むことができますそのPHPページからJSONを取得しますか? –

+0

[JSONP](http://en.wikipedia.org/wiki/JSONP)はここで動作しませんか? – jwueller

+0

私はanyorigin.comがSSLをサポートしていると確信しています。たとえば 'https:// test.kems.net /'を取得してみてください。うまくいきます。 –

答えて

12

をどのように動作するかの本当の基本的な過去記事で申し訳ありませんが、それはanyorigin.com サポートHTTPSをしているようです。

API in questionがJSONを返すため、私は実際にはgoogle.comでanyorigin.comを使用してテストしたところでプレーンテキストの応答を得ることができたと考えています。ただobjectを返したとき、私は何かが壊れていると考えました。

オブジェクトは単に解析されたJSONを返すように見えるので、私は行けます!

更新は - anyorigin.com私はこの投稿を数週間後にいくつかのHTTPSサイトで作業を停止し、私は先に行って、anyoriginするwhateverorigin.org、オープンソースの代替を書きました。

+0

@RobW - githubで問題をオープンしてください。私は金曜日にこれを調査します(もっと早く約束することはできません) - https://github.com/ripper234/Whatever-Origin – ripper234

+0

リモートサーバーが何かを要求した人に基づいて異なるコンテンツを返す場合、これらのメソッドは機能しません。たとえば、YouTubeは、呼び出し元のクライアントからではなく、呼び出し元から使用されている場合にのみ動作する(MP4ファイルとしてフェッチするなど)MP4の再生URLを抽出できるビデオのWebページを返します(呼び出し元がプロキシ) –

+0

**この質問の回答はここに書いてあります。 [jQuery AJAXでクロスドメインHTMLページを読み込む](http://stackoverflow.com/questions/15005500/loading-cross-domain-html-page-with -jquery-ajax/17299796#17299796)** - 最後の1つはhttps_をサポートしています – jherax

0

JSONPはあなたのリストに載っていなければなりません。かなり標準。サーバーの協力が必要ですが、大部分のAPIは自分が何をやっているのかを理解してサポートする必要があります。

hereは、それが

3

Ajax-cross-originをjQueryプラグインとして使用できます。このプラグインでは、jQuery.ajax()のクロスドメインを使用します。

使用することは非常に簡単です:http://www.ajax-cross-origin.com/

関連する問題