Jquery 正在删除Cookie
我有一个asp.NETMVC应用程序,我有一个奇怪的事情正在发生,我不知道为什么 上下文: 我有一个页面,允许用户绘制和编辑图像。这个页面有一个特性,即每5分钟,她使用jquery对服务器进行一次ajax调用,将项目的当前状态保存在数据库中,并再次调用以保存存储在适当位置的项目图像 问题: 在浏览器最小化的情况下,当启动此功能时,在对服务器进行ajax调用之后,cookie客户将被删除。但是当chrome最大化时,效果很好 注意事项:Jquery 正在删除Cookie,jquery,asp.net,ajax,cookies,Jquery,Asp.net,Ajax,Cookies,我有一个asp.NETMVC应用程序,我有一个奇怪的事情正在发生,我不知道为什么 上下文: 我有一个页面,允许用户绘制和编辑图像。这个页面有一个特性,即每5分钟,她使用jquery对服务器进行一次ajax调用,将项目的当前状态保存在数据库中,并再次调用以保存存储在适当位置的项目图像 问题: 在浏览器最小化的情况下,当启动此功能时,在对服务器进行ajax调用之后,cookie客户将被删除。但是当chrome最大化时,效果很好 注意事项: 这仅在最小化浏览器时发生 这至少在chrome和firefo
jquery
调用代码:
makeAjaxCall(ajaxData) {
var localData = ajaxData.data ? ajaxData.data : {},
urlVariables = {};
localData.cmd = ajaxData.cmd;
var controlerURL = ajaxData.uploadUrl ? HelperJSViewBag.getValue("ajaxCAllUploadURL") : ajaxData.controller;
if (typeof ajaxData.data.urlVariables == "undefined")
ajaxData.data.urlVariables = [];
let editorVersion = "";
let forceEditorVersion = "";
if (typeof UrlParameters != "undefined") {
editorVersion = UrlParameters.getInstance().editorVersion;
forceEditorVersion = UrlParameters.getInstance().forceEditorVersion;
}
else if (typeof HLinks != "undefined") {
editorVersion = HLinks.getUrlVariable("editorVersion");
forceEditorVersion = HLinks.getUrlVariable("forceEditorVersion");
}
if (editorVersion.length > 0)
ajaxData.data.urlVariables.push({
name: "editorVersion",
value: editorVersion,
});
if (forceEditorVersion.length > 0)
ajaxData.data.urlVariables.push({
name: "forceEditorVersion",
value: forceEditorVersion,
});
if (typeof ajaxData.data.urlVariables != "undefined" && ajaxData.data.urlVariables.length > 0)
for (var i = 0; i < ajaxData.data.urlVariables.length; i++)
urlVariables[ajaxData.data.urlVariables[i].name] = ajaxData.data.urlVariables[i].value;
localData = this.fillLocalData(localData);
return $.ajax({
type: 'POST',
data: localData,
url: controlerURL + "?" + $.param(urlVariables),
success: function (data) {
try {
var result = JSON.parse(data),
status = result.status;
delete result.status
switch (status) {
case 1: ajaxData.sucess && ajaxData.sucess(result.data); break;
case 2: ajaxData.insucess && ajaxData.insucess(ajaxData.errorHandler && ajaxData.errorHandler.handle && ajaxData.errorHandler.handle(result)); break;
}
}
catch (ex) {
ajaxData.insucess && ajaxData.insucess(ajaxData.errorHandler && ajaxData.errorHandler.handle && ajaxData.errorHandler.handle(ex));
}
},
error: function (data) {
ajaxData.insucess && ajaxData.insucess(ajaxData.errorHandler && ajaxData.errorHandler.handle && ajaxData.errorHandler.handle(data));
}
});
}
makeAjaxCall(ajaxData){
var localData=ajaxData.data?ajaxData.data:{},
urlVariables={};
localData.cmd=ajaxData.cmd;
var controlerURL=ajaxData.uploadUrl?HelperJSViewBag.getValue(“ajaxCAllUploadURL”):ajaxData.controller;
if(ajaxData.data.urlVariables的类型==“未定义”)
ajaxData.data.urlVariables=[];
让editorVersion=“”;
让forceEditorVersion=“”;
if(URL参数的类型!=“未定义”){
editorVersion=UrlParameters.getInstance().editorVersion;
forceEditorVersion=UrlParameters.getInstance().forceEditorVersion;
}
else if(HLinks的类型!=“未定义”){
editorVersion=HLinks.getUrlVariable(“editorVersion”);
forceEditorVersion=HLinks.getUrlVariable(“forceEditorVersion”);
}
如果(editorVersion.length>0)
ajaxData.data.urlVariables.push({
名称:“编辑版本”,
值:editorVersion,
});
如果(forceEditorVersion.length>0)
ajaxData.data.urlVariables.push({
名称:“forceEditorVersion”,
值:forceEditorVersion,
});
if(ajaxData.data.urlVariables的类型!=“未定义”&&ajaxData.data.urlVariables.length>0)
对于(var i=0;i
我想在ASP.NET端查看您的代码,但如果没有,我只能猜测:也许检查一下您是否设置了cookie过期日期?下面是一个cookie的示例,该cookie在过期1天时创建:
Dim myCookie As HttpCookie = New HttpCookie("Customer")
myCookie.Expires = Now.AddDays(1)
Response.Cookies.Add(myCookie)
如果省略mycokie.Expires属性,cookie“将在用户会话过期时过期”,参考
localStorage
,而不是Cookies来保存值例如,使用
localStorage.setItem
设置值,使用localStorage.getItem
从本地存储获取值。能否启用网络选项卡,然后最小化浏览器?还要将console.log与time打印在一起,以便您知道发生了什么,查看会话是否出于某种原因超时或未进行呼叫?我假设您使用的是setTimeout或setInterval?无论在何种情况下,在最小化后添加日志记录和检查控制台,因为这与图纸有关,我想在最小化时读取屏幕可能会有一些问题?如果在进行ajax调用之前删除了cookie,那么ajax调用失败可能会导致cookie被删除?您使用什么代码生成cookie?发生这种情况时,您是否遇到任何控制台错误?您使用什么版本的Chrome和FF进行测试?@RicardoRocha我看不出cookie是在哪里创建或更新的。这表明cookie数据是由ASP.NET代码而不是JS创建、管理和更新的。3小时的时间段表明超时正在某个地方触发此更改。cookie似乎没有过期,但已以某种方式更新,内容设置为”
。请将代码张贴在cookie“Customer”所在的位置