会话变量在 JQuery 重定向后为空


Session Variables Are Empty After JQuery Redirect

  1. 我有一个使用 JQuery 验证然后提交给自己的表单(A页(随意使用JQuery。提交被 PHP 检测到脚本。(这很有效(
  2. 提交后,JQuery 脚本重定向到另一个页面(页面B(。
  3. 另一个页面使用存储在会话变量中的值上一页,用于从数据库中检索数据。

一切都很好,问题是重定向时会话变量为空! 我尝试了各种不同的东西,但没有用。我不确定我做错了什么导致会话被清空。我怀疑问题出在重定向到页面 B 的 JQuery 上。

页面 A JQuery 和会话代码

    <?php
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    if(isset($_REQUEST['fs'])){
    $randval =  substr(md5(microtime()),rand(0,26),5);
    session_start();
    $_SESSION['rref'] = $randval;
    //some other code that works fine
    }}
    ?>
    <form method="REQUEST" id="form" name="form" class="aj">
      //some fields and codes
      <input type="hidden" name="fs" value="fs" id="fs" >
      <input type="submit" value="Reserve" id="btn-form-valid" style="text-align: center; font-weight: bold;" onclick="jQuery('.aj').parsley('validate');">
    </form>
    <script>
      jQuery(function() {
        jQuery('.aj').submit(function(e) {
          e.preventDefault();
          if ( jQuery(this).parsley().isValid() ) {
            jQuery.ajax({
              type: "post",
              data: jQuery(".aj").serialize(),
              success: function (data) {
                window.location.assign("http://location");
              }
              ,
              beforeSend: function() {
              }
            }
           });
          });
    </script>

页面 B 代码

    <?php
session_start();
    $x = $_SESSION['rref'];
    echo $x;
//nothing is returned
?>

我尝试寻找有类似问题的人,但没有任何用处。

尝试将session_start放在开头:

<?php
session_start();
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    if(isset($_REQUEST['fs'])){
        $randval =  substr(md5(microtime()),rand(0,26),5);
        $_SESSION['rref'] = $randval;
        //some other code that works fine
    }
}
?>