0

私はphpのuse_trans_sidを使用しようとしているので、すべてのURLにphpsessidがあります。しかし、use_trans_sid を 1 に設定すると、AJAX 呼び出しで適切な結果が得られませんでした。どういうわけか結果は切り捨てられました。

use_trans_sid を 0 に戻すと、AJAX 呼び出しは再び適切に結果を取得します。

問題は何でしょうか?

Yii フレームワークを使用しています。

4

2 に答える 2

0

PHP の use_trans_sid を 1 に設定しました。

これにより、PHP はセッション ID を伝搬するコードを挿入します。私の場合、PHP は json オブジェクトにエンコードされた形式で隠し変数を挿入しました。その結果、ajax 呼び出しはリクエスト エラーとして取得します (json オブジェクトを取得しませんでした)。

フォームを「Hello」のような文字列に置き換えることで、これを確認しました。そのため、PHP はセッション ID を伝搬するコードを挿入しませんでした。そしてajax呼び出しはそれを良いjsonオブジェクトとして取得します。

さて、問題は「PHP からこのような割り込みを行う方法は、ajax 呼び出しを妨げませんか?」に変わりました。

于 2013-11-06T01:41:55.733 に答える
0

ajax url リクエストを確認use_trans_sid=1します。phpsessid var がない場合は、リクエスト URL に GET パラメータとして手動で追加する必要があります。

use_trans_sid=1js や ajax ではなく、ページの URL のみを書き換えます。使用すると、PHP は get パラメータでセッション ID を見つけようとします。見つからない場合は、新しいセッションを作成します。

use_trans_sid=0PHPはCookieセッションIDを介して動作するため、ajaxを使用すると 動作します

于 2013-11-05T07:42:47.257 に答える