나는 asp.net mvc 응용 프로그램을 가지고 있는데, 나는이 이상한 일이 일어나고 있으며 나는 왜 그런지 모릅니다.쿠키가 삭제되고 있습니다.
상황 :
나는 사용자가 그리는 이미지를 편집 할 수있는 페이지가 있습니다. 이 페이지에는 5 분마다 jquery을 사용하여 서버에 대한 ajax 호출을 작성하고 데이터베이스의 현재 프로젝트 상태를 저장하고 적절한 위치에 저장소 인 프로젝트의 이미지를 저장하는 또 다른 호출을 저장하는 기능이 있습니다 .
는문제 :이 기능은 서버에 아약스 호출 후 쿠키 고객은 입니다 시작됩니다 최소화 브라우저와
는을 삭제. 그러나 크롬이 최대화되면 이것은 잘 작동합니다.
참고 : 브라우저는 적어도, 크롬 및 파이어 폭스에서 이런 일이
- 에만이 발생합니다.
- 프로덕션 환경에서만 발생합니다. 당신이 줄 수 있다면 내 로컬 컴퓨터에 비주얼 스튜디오에 난, 난 당신이 정보 만 도움을 위해 그 어려운 것을 알고
[편집] 사전에 감사합니다
내가 문제에 대한 몇 가지 새로운 있습니다- 크롬 버전 63.0.3239.84 (공식 빌드)를 사용하여을 (64 비트);
- 파이어 폭스 퀀텀 57.0 (64 비트);
- 내가 처음 생각한 것과는 달리 브라우저가 최소화되지 않았고 페이지로드 후 정확히 3 분이 걸리지 만 (기능을 호출하는 경우)
- 쿠키가 삭제되지 않지만 쿠키의 콘텐츠는 다음과 같습니다. ::
- 이것은 asp.net 웹 응용 프로그램 콘솔은
- 쿼리의 버전이 2.1.3
이다가
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)); } }); }
네트워크 탭을 활성화 한 다음 브라우저를 최소화 할 수 있습니까? 또한 무슨 일이 일어나고 있는지 알 수 있도록 console.log에 time print를 넣으십시오. 어떤 이유로 세션 시간이 초과되었거나 호출이 만들어지지 않았는지 확인하십시오. 나는 당신이 setTimeout 또는 setInterval을 사용하고 있다고 가정합니까? 어떤 경우 든 로깅을 추가하고 콘솔을 최소화 한 후 확인하십시오. –
이것은 도면과 관련되어 있으므로 최소화 할 때 화면을 읽는 데 약간의 문제가있을 수 있습니다. ajax 호출을하기 전에 쿠키를 삭제하면 ajax 호출이 실패하여 쿠키가 삭제 될 수 있습니다. – cytsunny
쿠키를 생성하는 데 사용하는 코드는 무엇입니까? 이 경우 콘솔 오류가 발생합니까? 테스트를 위해 사용중인 Chrome 및 FF의 버전은 무엇입니까? – Twisty