ホームページ >ウェブフロントエンド >jsチュートリアル >クロスドメインテクノロジー (JSONP および CROS)

クロスドメインテクノロジー (JSONP および CROS)

高洛峰
高洛峰オリジナル
2016-12-14 13:02:521356ブラウズ

JSONP

Web ページで js ファイルを呼び出す場合、「src」属性を持つすべてのタグには、3f1c4e4b6b16bbbd69b2ee476dc4f83a や < などのクロスドメイン機能があることがわかりました。 ;img>、

function dll(response){
    alert(response.city);
}
var script=document.createElement("script");
script.src="http://freegeoip.net/json/?callback=dll";
document.body.insertBefore(script,document.body.firstChild);

3 つのステップ: スクリプトを作成し、src を指定し、ドキュメントに挿入します。

jQuery は JSONP 呼び出しをサポートしています。別のドメイン名でコールバック関数名を指定した後、次のフォームを使用して JSON データをロードできます。
url?callback=?
jQuery.getJSON(url + "&callback=?", function(data) {
alert(data.a + data.b);
});
もちろん、サーバーは JSONP サポートも提供する必要があります、実際には、読み取りおよび書き込みコールバックのパラメータを指定するだけです。
Cross-Origin Resource Sharing (CORS)
Cross-Origin Resource Sharing (CORS) は、ドメインを越えてリソースにアクセスする際のブラウザーとサーバーの通信方法を定義する W3c 作業草案です。 CORS の背後にある基本的な考え方は、カスタム HTTP ヘッダーを使用して、ブラウザーとサーバーが相互に理解し、要求または応答が成功したかどうかを判断できるようにすることです。

JSONP と比較して、CORS はより高度で、便利で、信頼性があります。

1. JSONP は GET リクエストのみを実装できますが、CORS はすべての種類の HTTP リクエストをサポートします。
2. CORS を使用すると、開発者は通常の XMLHttpRequest を使用してリクエストを開始し、データを取得できます。これにより、JSONP よりも優れたエラー処理が可能になります。
3. JSONP は主に古いブラウザーでサポートされており、多くの場合 CORS をサポートしていませんが、最新のブラウザーのほとんどはすでに CORS をサポートしています。
カスタム ヘッダーのない単純なリクエストの場合は、GET または POST を使用し、その本文は text/plain で、リクエストは Origin と呼ばれる追加ヘッダーとともに送信されます。 Origin ヘッダーには、要求されたページのヘッダー (プロトコル、ドメイン名、ポート) が含まれているため、サーバーは応答を提供する必要があるかどうかを簡単に決定できます。
サーバー側は主に Access-Control-Allow-Origin を設定することで CORS をサポートします。
ヘッダー セット Access-Control-Allow-Origin *
サーバーへの XSS 攻撃を防ぐために、
Access-Control-Allow-Origin: http://blog.csdn.net
多くのサービスなどのドメインを制限できますCORS サポートにより、たとえば AWS はクロスドメイン リソース共有機能 CORS をサポートしており、S3 へのアップロードにプロキシは必要ありません。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:jQueryとxajax次の記事:jQueryとxajax