ホームページ >バックエンド開発 >PHPチュートリアル >jquery.getJson() セッションの不整合の問題
皆さん、こんにちは。私は最近 Web サイトを構築しています。次のコードを使用して register.php を非同期にリクエストしていますが、register.php と login.php によって出力される sessionId が矛盾しています。 . jqueryのバージョンが低すぎることが原因でしたが、最高のバージョンに変更した後でもこの問題が発生しました。専門家が解決するのを手伝ってくれますか?
$.getJSON("register.php",{username:username},function(data){
$("#lgform").submit(); //login.jsp に送信
conf.phpファイル
ini_set ('session.cookie_domain','localhost');
$sessionId = session_id();
register.php がデータを受信した後
jquery returns データの後、login.php にリクエストします
$_SESSION['username'] データが空です、login.php の sessionId が register.php の sessionId と一致しません
この質問に答えられる専門家はほとんどいませんか?
完全なテスト コードを提供してください。不可能な問題を検証するコードを他人に書かせることはできません
これは IE でのみ存在する必要があります。
問題の原因:IE6/IE7 でサポートされている P3P (Platform for Privacy Preferences Project (P3P) 仕様) プロトコルは、プライバシーとセキュリティに関する声明のないサードパーティ Cookie をデフォルトでブロックします。Firefox は現在、P3P セキュリティ機能をサポートしていません。 Firefox には存在しません。この問題は解決されました。これに関する Mircosoft の詳細な説明は、「Internet Explorer 6 のプライバシー」にあります。
解決策は、サーバーが応答したときに P3P ホスト ヘッダー ステートメントを出力することです。 Baidu ライブラリへのリンクを提供します
http://wenku.baidu.com/view/ ea504514866fb84ae45c8d2c.html
C# コードを貼り付けます:
if (context.Request.Browser.Browser.ToUpper().Contains("IE")) を Ajax ログイン ページ **.ashx コードに追加します
if (context.Request) を追加します。 .Browser.Browser.ToUpper().Contains("IE"))
context.Response.Headers.Add(" P3P", "CP=CAO PSA
");