JQuery--->Ajax请求,Session同步问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery--->Ajax请求,Session同步问题相关的知识,希望对你有一定的参考价值。

1、页面用ajax请求到后台action
2、action中在Session里面设置了一个值-->后台打印Session值可以出来
3、页面ajax执行成功后,在success参数中执行的是:取得Session中的值。

但是取得的值是null,这时候、用F5刷新页面、然后就可以看到Session里面存的值、
Session没同步、

求解决方法、求原因、 、

这个问题按理说应该会改变的,无论是异步还是同步的调用。如果程序没错误的话,我怀疑

1.浏览器的问题。你是不是用的IE,内核是不是IE8呢?如果是的话建议你用用别的浏览器试试看,例如火狐,google等,或者卸载 KB976662 补丁(IE的补丁)

2,缓存问题,也就是说在你这个方法调用之前这个session是空值,然后缓存了就一直是空值。解决办法就是在你的请求URL后面加一个时间戳 例如"Ajax.aspx?act=Edit&r="+ Math.random();

3也或许是你的session丢失了,可能原因就是超时了,或者无故丢失,如果后者的话
建议你修改配置文件
例如:<sessionState mode='StateServer' stateConnectionString='tcpip=127.0.0.1:' sqlConnectionString='data source=127.0.0.1;Trusted_Connection=yes' cookieless='true' timeout='60'/>
这样的话除非你的电脑蹦了,否则session不会丢失的

以上只是猜测不知能否帮到你
参考技术A $.ajax(
url : xxx,
type : 'POST',
dataType : 'json',
async : false,//加上这句试试
success : function(root) ;
);追问

我加了这个属性、但是不行的

参考技术B 没有遇见过这种情况,不过你可以把session值直接传回来,传到回调函数里去,就省的在在回调函数里去session了,反而比较方便,一般不都是这么做的么?

一个JQuery发送ajax请求

环境:

1.jQuery v2.1.1

2.ThinkPHP 3.2.3

HTML页面:

<button type="button" id="cat" onclick="return showList()" class="btn btn-primary pull-right">删除</button>

<script type="text/javascript">
  function showList(){
    // $.get("{:U(\'ajax\')}",
    // function(data){
    // console.log(data);
    // });
    $.ajax({
      url: \'{:U("ajax")}\',
      type: \'get\',
      dataType: \'json\',
      data: \'\',
    })
    .done(function(data) {
      console.log(data);
    })
    .fail(function() {
      console.log("error");
    })
    .always(function() {
      console.log("complete");
    });
  }
</script>

PHP页面:

public function ajaxAction(){
  $data[\'status\'] = 1;
  $data[\'content\'] = \'content\';
  $this->ajaxReturn($data);
}

结果:

 

以上是关于JQuery--->Ajax请求,Session同步问题的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 在jQuery发送Ajax请求

jQuery AJAX 跨域请求

jquery实现ajax跨域请求

jquery ajax GET请求执行两次

jquery的post方式发送AJAX请求

jquery的get方式发送AJAX请求