2017-04-20 3 views
1

특정 엠 버 데이터 모델 ('카트')에 대한 백엔드 API에서 세션 쿠키를 설정하려고합니다.Ember : api의 세션 쿠키가 설정되지 않았습니다.

모델에서 createRecord가 호출되면 내 API에 XHR "POST"요청이 표시됩니다. API가 처리하고 응답하는 것을 보았습니다. 응답 헤더에 Set-Cookie가 표시되지만 브라우저에는 쿠키가 없습니다!

다른 포트에서는 ember 앱과 api가 동일한 도메인 (로컬 호스트)에 있습니다. 나는 봤는데 그게 cookies are not port-specific 나타납니다. 그래서 나는 그것을 막고있는 것을 볼 수 없다.

Chrome 확장 Postman을 사용하여 동일한 POST를 API에 제출하면 브라우저에서 쿠키가 잘 설정되어 작동합니다. 요청이 엠버 애플 리케이션에서 오는 경우 그냥 작동하지 않습니다. 나는 어디에서나 오류를 보지 않고있다.

쿠키 내에 쿠키가 설정되지 않는 항목이 있습니까? 그 이유를 알 수 없습니다. 브라우저가 응답 헤더를 처리해야 Ember가 다시 작동하게됩니다.

나는 이것에 죽음의 토끼 구멍을 내려갈거야! 어떤 도움을 주셔서 감사합니다. 여기에 요청/응답이 있습니다. 당신이 크로스 도메인 요청을 시도하는 경우

enter image description here

+0

다른 도메인을 사용해 보셨습니까? Chrome에서는 때때로 localhost에 Firefox 쿠키 문제가 있습니다. 참조 [여기] (http://stackoverflow.com/a/16328311/2471991) 및 [여기] (http://stackoverflow.com/questions/28583729/localhost-cookies-not-set) – Timm

+0

그건 좋은 생각이야 - 하지만 여전히 작동하지 않습니다. ( – tarponjargon

답변

3

당신은 응용 프로그램뿐 아니라 서버에 대한 사용 권한을 모두 부여 할 수 있습니다. 이 경우에 CORS을 읽으십시오.

 xhrFields: { 
     withCredentials: true 
     } 

당신은 withCredential here에 대한 자세한 내용을보실 수 있습니다 : 당신이 httpOnly 쿠키가있는 경우 또한, 당신은 귀하의 아약스 요청에 withCredientials 필드를 설정해야합니다. 이 두 가지가 쿠키 문제의 주요 요인입니다.

+0

감사합니다! 나는 이것에 대해 인정하고 싶습니다. – tarponjargon

관련 문제