[php] Ajax 요청 인터페이스의 쿠키 문제
阿神
阿神 2017-05-16 12:03:02
0
2
364

시나리오: 예를 들어 사용자 로그인 인터페이스 a와 사용자 정보 획득 인터페이스 b의 두 가지 인터페이스가 있습니다. 브라우저에서 호출할 때 전혀 문제가 없습니다. 이제 jq의 ajax을 사용하여 이 두 인터페이스를 호출해야 할 때 문제가 발생합니다.

  1. 먼저 브라우저에 대해 이야기해 보겠습니다.
    브라우저에 로그인 인터페이스 주소를 입력하고 매개변수를 전달하여 로그인에 성공했습니다. 서버(php)는 내 사용자 ID, 사용자 이름 등을 session에 저장합니다. 다음으로 사용자 정보 인터페이스를 요청합니다. b. 서버가 세션에서 직접 사용자 정보를 찾아 브라우저로 반환합니다.

  2. Ajax에 대해 이야기해보겠습니다.
    ajax를 사용하여 js에서 로그인 인터페이스를 호출하고 성공 정보를 반환하여 로그인에 성공했습니다. 사용자 정보도 세션에 저장됩니다. 하지만 사용자 정보를 얻기 위해 ajax를 사용하여 인터페이스 b를 호출했을 때 문제가 발생하여 session 찾을 수 없다는 메시지가 표시되었습니다.

콘솔에서 확인해 보니, 다음번에 동일한 도메인 이름으로 인터페이스를 요청하면 set-cookie의 정보가 응답 헤더에 자동으로 반환됩니다. 서버에서 cookie의 데이터를 얻기 위해 요청 헤더에 전송됩니다. session

Ajax 요청의 경우 로그인에 성공하면 응답 헤더에

정보도 반환되지만, 다음 번에 동일한 도메인 이름으로 인터페이스를 요청할 때는 set-cookie이 자동으로 전송되지 않습니다. cookie 데이터를 찾을 수 없습니다. session

그러면 질문은 이렇습니다.

세션 데이터를 얻으려면 Ajax 요청 시 수동으로 쿠키를 보내야 하나요? 그렇지 않은 경우 세션 데이터를 얻는 방법은 무엇입니까?

하나님께 답을 구해보세요!

阿神
阿神

闭关修行中......

모든 응답(2)
黄舟

ajax 매개변수 추가 요청 xhrFields: { withCredentials: true },ajax 请求添加参数 xhrFields: { withCredentials: true },

php 设置header('Access-Control-Allow-Credentials:true');

php set header('Access-Control-Allow-Credentials:true');🎜
巴扎黑

세션은 쿠키를 사용합니다. 서버의 쿠키는 어디에 저장되나요?

클라이언트 브라우저에서 쿠키를 전달하더라도 서버의 쿠키와 일치하나요?

그래서 서버에서는 세션이 불가능하고 토큰만 사용할 수 있으며, 백그라운드에서 정보를 저장하려면 redis 등을 사용해야 합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿