フロントクロスドメインの理由と3つのソリューションXHR

フロントエンドクロスドメインソリューション
・セキュリティ制限のポリシーのために作られたクロスドメインブラウザ
-browser要求は、同一生成元ポリシーに従う必要がありますの合意で、ポートと、同じドメイン名を


1 :クロスドメインCROS 
    この方法は、サービス側で解決されます
    PHPの決済の場合:
        // モード1: 
        ヘッダ(アクセス制御-許可-起源:* ); // すべてのアドレスは、クロスドメイン要求を許可
         // 第二の方法を: 
        ヘッダ(アクセス制御-許可-起源:HTTP:ローカルホスト//:8080 "); //は、アドレスを指定するには、クロスドメインリクエストすることができ、1つのしか指定でき

        // 3つの方法:あなたはクロスドメインリクエストを複数のアドレスを許可する場合は書き込むことができます 
        $起源を= [ " HTTP:// localhostを:8080 ' ' HTTP:// localhostを:8081 " ];
        $ AllowOrigin = ' HTTP:// localhostを:8080 ' ;
         IF(in_array($ _ SERVER [ " HTTP_ORIGIN " ]、$原点))
        { 
            $ AllowOrigin = $ _SERVER [ " HTTP_ORIGIN " ]; 
        } 
        ヘッダ(アクセス制御、許可-Origin:" $ AllowOrigin);.
 2 :JSONP 
    この方法は、フロントエンド、バックエンドが設定されている必要があり
    、同一生成元ポリシーの影響により、AJAXリクエストクロスドメインリクエストを許可していない、とのリンクスクリプトタグのsrc属性が、ドメイン間でアクセスすることができますjsのスクリプトは、
    JSON形式でサーバーもはや返すデータ、この機能を利用するが、そうクロスドメインを達成するために、関数を呼び出すためにいくつかのjsのコードを返します。
    詳細遠位実現:
         <SCRIPT SRC = "http://www.fengxiangqu.com/file/wd-js/jquery-1.11.1.min.js " > </ SCRIPT> 
        <SCRIPT> 
            $アヤックス({ 
            タイプ:" GET " 
            URL:" HTTPS: //order.imooc.com/pay/cartorder 
            データ型:JSONP 
            JSONP:コールバック// 要求ハンドラまたはページに渡されたが、JSONPコールバック関数名パラメータ名(デフォルトを取得するには:コールバック) 
            jsonpCallback:jsonpcallback // JSONP定義のコールバック関数名いるので、ランダム関数のデフォルト名は自動的に生成されたjQueryの
            成功:関数(JSON){ 
            にconsole.log(JSON); 
            }、
            エラー:関数(){ 
                
            } 
        });
         </ SCRIPT> 
    バックエンドの実装:
         <?PHP 
            $ DATA = " ...... " 
            コールバック$ = ' jsonpcallback ' ; 
            $コールバックエコー。' ' .json_encode(データ$)。' ' ; 
            出口;
        ?>
 3:前方nginxのプロキシを

 

おすすめ

転載: www.cnblogs.com/cl94/p/12443843.html