2013-07-03 1 views
0

자바 스크립트 함수 내에서 엔드 포인트에 게시하려면 ajax를 사용하고 있습니다. 게시하기 전에 요청에 '쿠키'라는 헤더를 설정했습니다. beforeSend를 사용하여 'header'(아래 코드 참조)를 사용하여 헤더를 설정하려고했지만 머리글 만 설정되는 경우가 있습니다. 대부분의 경우 '쿠키'헤더가 설정되지 않습니다. 우편 요청에 대한 불똥 벌레의 머리글을보고이를 알 수 있습니다. 쿠키라는 헤더에만이 문제가 있습니다. 다른 모든 헤더는 일관되게 설정됩니다. '쿠키'헤더의 이름을 내가 부르고있는 서비스에 필요한 다른 값으로 변경할 수 없습니다.'Cookie'라는 헤더가 Firefox를 사용하여 항상 설정되지는 않습니다.

$.ajax({ 
    url:url, 
    type:'POST', 
    contentType: "application/xml", 
    beforeSend: function (request) 
     { 
      request.setRequestHeader("Cookie", authCookie); 
      request.setRequestHeader("Authorization", "Authentication id=company.platform.services.org.test,app_secret=aEWEvsddsdddddds0"); 
     }, 
    headers: {"Cookie": "abc.etc.authid=" + companyID + ",abc.etc.ticket=" + ticket, "Authorization": "Authentication id=company.platform.services.org.test,app_secret=aEWEvsddsdddddds0"}, 
    data: order, 
    success: createOrderCallback, 
    error: createOrderError 
}); 

이 헤더를 설정하여 각 요청에 대해 항상 설정되도록하는 것이 더 좋은 방법이 있습니까?

+0

AJAX를 사용하여 쿠키를 설정할 수 없습니다 (다른 도메인 용). –

+0

"쿠키"헤더는 브라우저에서 제어합니다. 'document.cookie'를 사용하여 쿠키를 조작하십시오 ([documentation] (https://developer.mozilla.org/en-US/docs/Web/API/document.cookie)) – Pointy

답변

1

당신이 브라우저가 보낸 실제 쿠키를했기 때문에 작동 보이는 유일한 이유는 아마 XHR http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method

와 쿠키 헤더를 설정하는 것은 불가능합니다.

+0

직접 설정할 수는 없지만 같은 도메인 URL이라면'document.cookie'에 대한 변경 사항이 반영됩니다. – Pointy

+0

@Pointy 그렇습니다. 정확히 똑같은 것은 아닙니다. 'document.cookie'는 httponly 헤더를 제어하지 못합니다. 예를 들어,'cookie' 헤더를 설정하면 모든 제어가 가능합니다. – Esailija

+0

아, 맞습니다. – Pointy

관련 문제