ホームページ  >  記事  >  ウェブフロントエンド  >  クロスドメインリクエスト POST のソリューションの紹介

クロスドメインリクエスト POST のソリューションの紹介

不言
不言転載
2019-04-04 10:48:383972ブラウズ

この記事では、クロスドメイン リクエスト POST の解決策を紹介します。一定の参考価値があります。困っている友人は参考にしてください。お役に立てれば幸いです。

クロスドメインリクエスト POST ソリューション

Cookie は通常、ドメインを越えることはできません。また、POST リクエストであっても、一般にドメインを越えることはできません。
    //     请求代码示例
    $.ajax({
        url: url,
        type: "POST",
        data: metadata,
        dataType: 'json',
        xhrFields: {  
            withCredentials: true  
        },  
        crossDomain: true,
        success: function(){},
        error: function(){}
    });

1. デフォルトでは、ajax (XMLHttpRequest() object および Microsoft.XMLHTTP object) は同一生成元ポリシーの対象となり、相互接続は許可されません。ドメインリクエスト。

2. jsonp のクロスドメインでは、この制限を回避するためにページを使用してスクリプト タグを動的に追加し、クロスドメイン リソースを参照しますが、 post メソッドはありません

解決策: サーバー側の設定により、ドメインを越えた Ajax リクエストが許可されます。
    ##     服务端设置允许跨域代码,eg:
    header("Access-Control-Allow-Credentials: true");

    header("Access-Control-Allow-Origin: http://www.xxx.com");

    ## 设置成功后,在接口请求的Response Headers会看到一下以下允许跨越信息
    {
        Access-Control-Allow-Credentials:true
        Access-Control-Allow-Headers:x-requested-with,content-type
        Access-Control-Allow-Methods:POST
        Access-Control-Allow-Origin:http://www.aipai.com
    }

Cookie クロスドメイン ソリューション

Ajax クロスドメイン リクエストの問題は解決されましたが、バックエンドがインターフェイス経由で Cookie を取得する必要がある場合、Cookie に関するクロスドメインの問題も発生します。

Cookie のクロスドメイン ソリューション: 次のパラメーターをリクエストに追加します。リクエスト ヘッダー情報は次のようになります。 Cookie 情報が付属します。
    // 代码
    $.ajax({
        ...
        xhrFields: {  
            withCredentials: true  
        },
        ...
    });

[関連する推奨事項: JavaScript ビデオ チュートリアル ]

以上がクロスドメインリクエスト POST のソリューションの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。