programing

$http가 요청으로 쿠키를 보내지 않음

goodjava 2023. 3. 16. 21:29

$http가 요청으로 쿠키를 보내지 않음

Angular를 사용한 RESTful Web Service를 준비하고 있습니다.JS 및 Java Servlets.사용자가 로그인하면 백엔드는 "Set-Cookie" 헤더를 프런트엔드로 전송합니다.Angular에서는 헤더를 통해 액세스합니다.$cookies(ngCookie - module) 및 설정. 여기에 이미지 설명 입력

사용자가 로그인하면 예를 들어 일부 항목을 삭제할 수 있습니다.따라서 프론트엔드는 백엔드로 GET 요구를 전송합니다.서로 다른 도메인에서 작업하기 때문에 몇 가지 CORS 헤더를 설정해야 하며 실제 GET 요구 전에 Angular가 OPTIONS 요구를 수행합니다.

OPTIONS 요청: OPTIONS 요구

GET 요구 GET 요구

우리는 이것을 $http 모듈을 통해 Angular에서 수행하지만, 그것은 cookie를 전송하지 않습니다.JSESSIONID.

Angular가 쿠키를 보낼 수 있도록 하려면 어떻게 해야 합니까?

설정에서는, DI$httpProvider다음으로 credentials를 true로 설정합니다.

.config(function ($httpProvider) {
    $httpProvider.defaults.withCredentials = true;
    //rest of route code
})

credentials를 사용한angularjs에 대한 정보:http://docs.angularjs.org/api/ng.$http

Mozilla 기사 링크:https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS?redirectlocale=en-US&redirectslug=HTTP_access_control#section_5

$http.get("URL", { withCredentials: true })
  .success(function(data, status, headers, config) {})
  .error(function(data, status, headers, config) {});

또 하나 유의해야 할 사항은 다음과 같습니다.서드파티 쿠키를 활성화해야 합니다.Chrome에서 전역으로 비활성화된 경우 도메인 이름 왼쪽에 있는 "i" 기호를 클릭한 다음 쿠키를 클릭한 다음 "차단"하고 대상 도메인을 차단 해제합니다.

언급URL : https://stackoverflow.com/questions/17064791/http-doesnt-send-cookie-in-requests