>백엔드 개발 >PHP 튜토리얼 >Fineuploader는 하위 도메인에 파일을 업로드할 때 쿠키 손실 문제를 해결합니다.

Fineuploader는 하위 도메인에 파일을 업로드할 때 쿠키 손실 문제를 해결합니다.

巴扎黑
巴扎黑원래의
2016-11-10 09:49:501822검색

현재 프로젝트에서는 순수 HTML5 업로드 컴포넌트인 Fineuploader를 사용하고 있으며, 개발 과정에서 로그인 쿠키에 의해 설정된 도메인은 루트 도메인 아래에 별도로 업로드 서비스가 배치됩니다. 사용자는 로그인 감지 후 항상 로그인되지 않은 페이지로 리디렉션되는 것으로 나타났습니다. 조사 결과 ajax xhr 요청에 쿠키가 포함되지 않은 것으로 나타났습니다.

온라인으로 검색하고

썼습니다.

Native ajax request method:

var xhr = new XMLHttpRequest(); 
xhr.open("POST", "http://xxxx.com/demo/b/index.php", true); 
xhr.withCredentials = true; //支持跨域发送cookies
xhr.send();

jquery's ajax post method request:

$.ajax({
type: "POST",
url: "http://xxx.com/api/test",
dataType: 'jsonp',
xhrFields: {
withCredentials: true
},
crossDomain: true,
success:function(){
},
error:function(){
}
})

서버측 설정:
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Origin: http://www .xxx.com");

백엔드 해당 조정이 이루어졌습니다. 프론트엔드 부분은 Fineuploader가 포함되어 있기 때문에 코드에서 withCredentials라는 키워드만 검색해서 공식문서에 가서 읽어봤습니다. cors 구성이 있습니다 http://docs.fineuploader.com/api/ options.html#cors

구성 줄에 다음 구성을 추가하면 괜찮습니다

Js 코드

cors: {  
                allowXdr: true,// 此参数目前不知道有啥用  
                expected: true,  
                sendCredentials: true  
            }

수정 후 문제가 해결되었습니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.