マッシュアップは同一組織のポリシーでどのように機能しますか?


回答:


7

クロスブラウザソリューション

JSONP

アクセスしようとしているAPIがJSONPをサポートしている場合、リクエストでJavaScript関数名を指定するだけで、JSONPはmyfunc({the:data});通常のjavascriptのように実行できるjavascriptを返すため、新しい<script src="www.website.com/somecall?jsonp=myfunc">タグを作成します。「リクエストを送信」(リクエストで使用する場合、jQueryはこれを自動的type: jsonp$.ajax行います)。

欠点は、APIのプロバイダーがJSONPをサポートする必要があることです。

閃光

ターゲットWebサイトのcrossdomain.xmlルートに許可されているファイルがある限り、Flashはクロスドメインコンテンツにアクセスできます。これは通常、APIを提供するサーバーの場合です。

欠点は、ユーザーのブラウザーにFlashが必要であり、データを取得するWebサイトにクロスドメインリクエストを許可するcrossdomain.xmlが必要であるということです。

同じドメイン名のサーバー側スクリプト

PHPなどのサーバー側言語にはBSの同じドメインの制限がないため、プロキシとして機能するスクリプトを使用できます(たとえば、cURLなどのhttp拡張機能を使用してダウンロードする)。

追加の利点は、サーバー上のデータをクリーンアップ(または複数のソースをマッシュアップ)してから、ウェブページ/ javascriptに転送できることです。したがって、データの有用な部分のみを抽出することもできます。帯域幅が問題になる場合があります。

欠点は、すべての要求がサーバーを経由する必要があるため、サーバーの負荷が増加することです。

ただし、ターゲットがクロスドメインまたはjsonpをサポートする必要がないため、どのリソースでも動作するという利点があります。したがって、他に何も機能しない場合、これは機能します。


一部のブラウザーに固有のソリューション

インターネットエクスプローラ

Internet Explorerにはクロスドメインリクエストがあります

Firefox

Firefox 3.5以降には、クロスオリジン共有標準がありますが、PHPのような特別なヘッダーを含めるには、アクセスしようとしているリソースを必要とします。

header("content-type: Access-Control-Allow-Origin: *");
header("content-type: Access-Control-Allow-Methods: GET");

他のいくつかの主要なブラウザもこれをサポートしているため、古いブラウザをサポートする必要がなく、リソースを取得してそれらのヘッダーを送信するためにアクセスしようとしている場合、これが最善の策かもしれませんスクリプトが私の推奨です。


Firefoxにもユーザー設定がありますが、ユーザーcapability.policy.default.XMLHttpRequest.openがブラウザーの設定を変更することは期待していません。


0

そのために(別のドメインの)APIを使用できます。Javascriptは、Webサーバー(ドメイン)にあるPHPファイル(またはその他のスクリプトファイル)を呼び出します。このファイルは、CURLを使用して(別のドメインの)APIを呼び出し、応答を取得します。


この答えは、サーバーで使用されているテクノロジーについてそれほど具体的である必要はありません。
ファンキーブロ

ええ@funkybro、それは一例に過ぎだった...何も具体的な...
ハリッシュKurup
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.