ホームページ > 記事 > ウェブフロントエンド > Ajaxのクロスドメインアクセス、セッションが保存できない等の問題の解決方法。
Ajaxリクエストに構成を追加します
$.ajax({ url:url, //加上 xhrFields及crossDomain xhrFields: { //允许带上凭据 withCredentials: true }, crossDomain: true, //以上 success:function(result){ alert("test"); }, error:function(){ } });
withCredentials:
デフォルトでは、クロスオリジン要求は資格情報 (Cookie、HTTP 認証、クライアント SSL 証明書など) を提供しません。 withCredentials プロパティを true に設定することで、特定のリクエストで資格情報を送信するように指定できます。サーバーが認証情報付きのリクエストを受信すると、次の HTTP ヘッダーで応答します。「Access-Control-Allow-Credentials: true」
資格情報を含むリクエストが送信されたが、サーバーの応答に上記のヘッダーが含まれていない場合、ブラウザは応答を JavaScript に渡しません(したがって、responseTextには空の文字列が含まれ、status の値は 0 になり、onerror() イベント ハンドラーが呼び出されます)。さらに、サーバーはこの HTTP ヘッダーをプリフライト応答で送信して、オリジンが資格情報を含むリクエストの送信を許可されていることを示すこともできます。
withCredentials 属性をサポートするブラウザには、Firefox 3.5 以降、Safari 4 以降、Chrome が含まれます。 IE10以前のバージョンはサポート対象外です。
同時に
基本的な許可クロスドメインレスポンスヘッダーを追加した後
Access-Allow-Credentials: trueを追加する必要があります
さらに、Googleのセキュリティポリシーにより
withCredentialsがtrueの場合
Access-Allow -ResponseHeader の Origin ではワイルドカード '*' を使用できません
それ以外の場合は、プロンプトが表示されます
認証情報フラグが true の場合、'Access-Control-Allow-Origin' ヘッダーにワイルドカード '*' を使用することはできません
。したがって、オリジン「http://url」へのアクセスは許可されません。
テスト対象の他のブラウザ
Ajaxリクエストに構成を追加します
$.ajax({ url:url, //加上 xhrFields及crossDomain xhrFields: { //允许带上凭据 withCredentials: true }, crossDomain: true, //以上 success:function(result){ alert("test"); }, error:function(){ } });
withCredentials:
デフォルトでは、クロスオリジン要求は資格情報 (Cookie、HTTP 認証、クライアント SSL 証明書など) を提供しません。 withCredentials プロパティを true に設定することで、特定のリクエストで資格情報を送信するように指定できます。サーバーが認証情報付きのリクエストを受信すると、次の HTTP ヘッダーで応答します。「Access-Control-Allow-Credentials: true」
資格情報を含むリクエストが送信されたが、サーバーの応答に上記のヘッダーが含まれていない場合、ブラウザは応答を JavaScript に渡しません(したがって、responseTextには空の文字列が含まれ、status の値は 0 になり、onerror() イベント ハンドラーが呼び出されます)。さらに、サーバーはこの HTTP ヘッダーをプリフライト応答で送信して、オリジンが資格情報を含むリクエストの送信を許可されていることを示すこともできます。
withCredentials 属性をサポートするブラウザには、Firefox 3.5 以降、Safari 4 以降、および Chrome が含まれます。 IE10以前のバージョンはサポート対象外です。
同時に
基本的な許可クロスドメインレスポンスヘッダーを追加した後
Access-Allow-Credentials: trueを追加する必要があります
さらに、Googleのセキュリティポリシーにより
withCredentialsがtrueの場合
Access-Allow - ResponseHeader の Origin ではワイルドカード '*' を使用できません
それ以外の場合は、プロンプトが表示されます
資格情報フラグが true の場合、ワイルドカード '*' を 'Access-Control-Allow-Origin' ヘッダーで使用することはできません。したがって、「://url」へのアクセスは許可されません。
他のブラウザはテスト対象です
以上がAjaxのクロスドメインアクセス、セッションが保存できない等の問題の解決方法。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。