gpt4 book ai didi

jquery - 第二次 ajax 调用时 session 被清除

转载 作者:行者123 更新时间:2023-12-01 00:27:00 25 4
gpt4 key购买 nike

这里我的问题有点奇怪,我只在我的生产服务器上遇到它。基本上我在第二次 ajax 调用时丢失了 session 值。整个过程就像用户单击一个按钮来启动同步过程,其中涉及两次ajax点击,第一个是post请求,成功完成后是第二个get请求。

我的代码如下:

jQuery 代码:

//User clicks "SyncButton" to initiate sync process
$('#SyncButton').on('click', function (event) {
//Some UI Code
$.ajax({
type: 'POST',
beforeSend: startService, //startService has some UI code
url: "FirstAjaxURL",
data: null,
contentType: "application/json",
success: function (data) {
ServiceSuccess(data);
},
error: serviceError
});
});

function ServiceSuccess(data) {
var html = ''; //code to get html from data
$('#divSync').html(html);
if (!($('#delete').length > 0)) {
RenderBusinessGrid();
}
};

function RenderBusinessGrid() {
var allBusiness = "";
$.getJSON("SecondAjaxURL", function (data) {
//Some UI handling code
});
$('#divSyncDetails').height('400px');
}

MVC代码:

[HttpPost]
public string FirstAjaxURL()
{
//make some DB hits
//fetch data
//create couple of zip files

编辑 2015 年 7 月 6 日

    //Unzip a zip file in one of the sub-directories. This zip file contains multiple sub-directories and files.

编辑 2015 年 7 月 6 日

    //save them in two separate folders in separate folders under root directory

/*LOGS SUGGEST ALL SESSION KEYS WERE AVAILABLE HERE*/
return "some string result";
}

public ActionResult SecondAjaxURL()
{
/*LOGS SUGGEST SESSION KEYS NOT AVAILABLE HERE*/

//do some DB operation
return jsonResult;
}

到目前为止我所尝试过的:

  1. 检查了 IIS 设置中的应用程序池回收时间,它们似乎没问题
  2. session 超时设置为较大值,如果我让系统空闲,它不会超时
  3. 确认第一次 ajax 命中中没有未处理的异常
  4. 尝试在应用程序的目录结构之外保存 zip 文件
  5. 尝试用 $.ajax 替换 $.getJson(我知道尝试这个很愚蠢,但你永远不知道......:)

注意:在大多数情况下,在用户第一次启动同步过程时,第二次 ajax 调用时 session 会超时。虽然我们观察到很多情况下这种情况会发生第二次或第三次。

一些进一步的细节:我检查了事件日志,发现每次注销时,事件查看器中都会记录以下错误:

事件代码:4005事件消息:请求的表单例份验证失败。原因:提供的票据无效。

请建议我还可以尝试/验证什么来找出此问题的根本原因,这让我很烦恼。欢迎大家指点。

谢谢,拉维

最佳答案

几年前我也遇到过类似的问题。我遇到的问题类似于 What could cause an asp.net application to forget a user? .

关键在于作者自己的回答:问题似乎是应用程序池正在回收,并且身份验证 cookie 变得无效,因为随着机器 key 的更改,它无法再被读取。解决方案是向 web.config 添加 machineKey 段并提供静态机器 key 。

关于jquery - 第二次 ajax 调用时 session 被清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31108777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com