위 챗 애플 릿 백 엔 드 가 session 을 유지 할 수 없 는 원인 및 해결 방법 문제
코드 에 session 추가start()또는 session.auto 오픈start()
하지만 설치 후 에는 효과 가 없다.
마지막 으로 jQuery 였 던 ajax(브 라 우 저 일 것 입 니 다)는 쿠키 를 자동 으로 유지 하고 wx.request 는 그렇지 않 습 니 다.
이것 은 session 과 쿠키 의 관계 및 보존 메커니즘 에 관 한 문제 입 니 다.
우선,쿠키 는 클 라 이언 트 에 저 장 된 정보 이 고 session 은 서버 에 저 장 된 정보 입 니 다.
그 서버 는 단독 사용자 의 session 을 어떻게 식별 하고 한 번 의 연결 에서 이 사용자 가 어떤 session 에 속 하 는 지 어떻게 판별 합 니까?
기 제 는 서버 가 sessionid 를 생 성하 여 사용 자 를 식별 하고 해당 하 는 쿠키 에 이 sessionid 값 을 가 져 오 는 것 입 니 다.사용자 가 다음 요청 을 할 때 요청 헤더 에 쿠키 도 서버 가 사용자 세 션 을 식별 할 수 있 도록 이 sessionid 를 가 져 가 야 합 니 다.그 중에서 판별 체제 와 session 저장 체 제 는 서열 과 반 직렬 화 와 관련 되 고 session.savepath 에 서 는 모든 session 에 파일 을 따로 만 듭 니 다.파일 이름 은 sessionid 이 고 내용 은 이번 세 션 에 저 장 된 session 입 니 다.
한편,wx.request 는 요청 에 쿠키 를 가 져 오지 않 기 때문에 요청 할 때마다 서버 에 새로운 sessionid 를 할당 하여 세 션 이 유지 되 지 못 하 는 결 과 를 초래 합 니 다.
해결 방법
wx.request 에 이 sessionid 를 가 져 오 거나 wx.request 를 다시 밀봉 해 야 합 니 다.
2019/9/27 업데이트:
스스로 header 를 유지 하고 wx.request 에 쿠키 를 저장 하고 보 냅 니 다.
우선 app.js 에 전역 변 수 를 저장 하고 header 를 저장 합 니 다.
globalData: {
header: {
"content-type": "application/x-www-form-urlencoded",
'Cookie': ''
}
}
그리고 매번 wx.request 의 요청 매개 변수 에 이 header 를 가 져 옵 니 다.모든 응답 에서 Cookie 를 header 에 감지 하고 저장 합 니 다.
wx.request({
url: 'http://localhost/loginDemo/server/loginTest.php',
//
header: getApp().globalData.header,
method: 'POST',
data: {
action: "login",
user: that.data.userInfo.nickName
},
success: function(res){
console.log(res)
//dosometing...
// set-cookie , cookie, session id
if (res.header["Set-Cookie"] != null) {
// cookie
getApp().globalData.header["Cookie"] += res.header["Set-Cookie"]
}
},
fail: function (res) {
console.log(res)
wx.showToast({
title: ' ',
icon: "none"
})
}
})
테스트첫 번 째 요청 은 로 컬(header)에 쿠키 에 저 장 된 PHPSESSIONID 가 없습니다.
첫 번 째 응답 요청,서버 는 Set-Cookie 로 돌아 가 phopsessionID 를 가 져 옵 니 다.
스스로 유지 하고 header 에 저장 합 니 다.
두 번 째 요청 은 헤더 가 있 고 session ID 가 있 습 니 다.
두 번 째 요청 응답 서버 에서 session 을 감지 하고 세 션 을 복원 하 며 새 세 션 을 만 들 지 않 습 니 다.
이상 의 방법 은 기본적으로 위 챗 애플 릿 Cookie 문 제 를 해결 할 수 있 습 니 다.더 많은 관련 애플 릿 백 엔 드 에서 session 내용 을 유지 할 수 없습니다.예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
애플 릿 이미지 새로 고침, nginx 재 작성 url 제거 인자이전에 nginx 로 이미지 서버 를 만 들 었 는데 전단 에 작은 프로그램 을 사 용 했 습 니 다. 작은 프로그램 이 출시 된 후에 그림 이 새로 고침 되 지 않 는 것 을 발 견 했 습 니 다. 조사 한 결과 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.