기본 인증이 필요한 모바일 웹 앱이 있습니다. 다른 도메인의 서버에서 Ajax를 사용하여 기본 인증을 호출 할 수있었습니다. 그러나 응답에 문제가 있습니다.요청한 Ajax가 다른 도메인에서 반환 된 경우 쿠키 설정
보통 세션 ID는 브라우저에서 설정된 쿠키 헤더를 통해 Ajax 응답으로 설정됩니다. 나는 이것이 성공적인 인증에서 발생하지 않는다는 것을 알아 차렸다.
내가 한 것은 응답을 반환 할 때 헤더를 읽음으로써 쿠키를 수동으로 설정하려고했습니다. 나는 이것을 jQuerys jqxhr 객체를 통해 달성했다. 놀랍게도 서버에서 sessionID가 반환되었다고 표시 했더라도 jqxhr을 통해 응답에 설정된 쿠키 헤더를 볼 수 없었습니다.
이것은 상호 도메인 요청의 예상되는 동작입니까? 일부 응답 헤더가 삭제됩니까? 이것은 브라우저의 보안 기능입니까? 그렇다면이 문제를 해결하기 위해 무엇을 제안 하시겠습니까? (예 : 시체 ID를 반환하십시오.이 문제를 해결하기 위해 Shiro 보안 필터를 사용하고 있기 때문에 원하지 않습니다. 그것을 해킹해야할까요?)
도와주세요
그는 아마도 jsonp를 사용하고 있습니다. – ThatGuy
내 응용 프로그램에서 교차 도메인 아약스 요청을 허용하려면 서버 쪽에서 Allow-Origin 헤더를 사용하고 있습니다. 응용 프로그램은 전화 간격으로 패키징되어 모바일에 배포됩니다. 따라서 애플리케이션을 제공하는 서버는 없으며 단지 모바일에서 실행될 것입니다. PhoneGap은 브라우저 래퍼에서 실행되도록 패키지하기 때문에 상호 도메인은 여전히 적용될 것입니다. – rycfung
헤더 Access-Control-Allow-Origin이 "*"가 아닌 한, 이것도 작동합니다. – vaugham