2014-04-05 3 views
0

저는 똥 문제에 쌓여있어 해결책을 찾을 수 없습니다. 누군가에게 아이디어가있을 수도 있습니다.쿠키 머리글을 각도로 읽을 수 없습니다.

나는 sails.js를 기반으로 나머지 API를 가지고 있으며 Angular.js를 통해 게시물 요청을 보냅니다 - 모든 응답 데이터를 얻을 수 있습니다.

하지만 im은 헤더 쿠키를 읽을 수 없습니다. 쿠키는 항상 null입니다 ...

헤더는 'Set-Cookie'여야합니다. 내가 같은 도구를 사용하여 같은 기능을 호출하면 나는 쿠키 헤더를 얻는다.

로컬 호스트 포트 : 8000을 사용 중입니다. 나머지 API는 포트에 있습니다 : 1337

$http.post(url, json) 
     .success(function(data, status, headers, config) { 

      console.log(headers('Server')); 
      console.log(headers('Set-Cookie')); 
     }) 
     .error(function(data, status, headers, config) { 
      console.log("error"); 
      console.log("status " +status); 
      console.log("status " +angular.toJson(data)); 
     }); 

어떤 아이디어가 있습니까?

건배 !!

+0

'headers()'를 덤프하십시오. 어쩌면'Set-Cookie' 속성이 없을 수도 있고, 헤더에 일종의 정규화 된 이름이있을 수도 있습니다 (예 : 'SetCookie'. – Engineer

+0

아니요 console.log (headers())를 호출하면 아무 것도 표시되지 않습니다. – Eike

+1

REST 도구는 다른 액세스 권한을 갖고 CORS (https://developer.mozilla.org/en/docs/HTTP/Access_control_CORS) 속성이 일치하는지 확인하여 MAYBE가 헤더 속성을 읽을 수 없습니다. –

답변

0

우선, 자바 스크립트에서는 set-cookie 헤더를 가져올 필요가 없습니다. 브라우저가 쿠키 설정을 처리합니다. 쿠키가 응답의 일부인지 확인하려면 브라우저의 개발 콘솔을 사용하는 것이 좋습니다.

더 많은 점은 쿠키가 설정되지 않는다는 것입니다. 이것은 출처가 다른 AJAX 요청 (다른 포트가 다른 출처로 계산 됨)이고 쿠키를 설정하지 않았기 때문입니다. Sails의 CORS 설정을 통해 요청을 처리 할 수 ​​있습니다.

CORS in Sails에 대한 전체 설명서는 here입니다. 테스트를 시작하는 가장 쉬운 방법은 /config/cors.js 파일을 열고 allRoutestrue으로 설정하는 것입니다. 이렇게하면 출처 나 액세스하려는 경로에 관계없이 모든 CORS 요청이 방해받지 않고 통과 할 수 있습니다. 일단 제대로 작동하면 원하는 경우보다 세분화 된 설정을 사용하여 액세스를 잠글 수 있습니다.

기본적으로 교차 원어 요청에 대한 very few 개의 응답 헤더 만 자바 스크립트를 통해 사용할 수 있으며이 중 set-cookie은 분명히 1이 아닙니다.