sourcecode

교차 도메인 POST 요청이 쿠키 Ajax Jquery를 전송하지 않습니다.

copyscript 2023. 3. 15. 19:52
반응형

교차 도메인 POST 요청이 쿠키 Ajax Jquery를 전송하지 않습니다.

stackoverflow에 대해서는 이미 비슷한 논의가 있었던 것 같습니다만, 완전히 같은 것을 찾을 수 없었습니다.

CORS(Cross-Origin Resource Sharing)와 함께 쿠키를 보내려고 하는데, 작동이 되지 않습니다.

이건 내 암호야

$.ajax(
    { 
      type: "POST",
      url: "http://example.com/api/getlist.json",
      dataType: 'json',
      xhrFields: {
           withCredentials: true
      },
      crossDomain: true,
      beforeSend: function(xhr) {
            xhr.setRequestHeader("Cookie", "session=xxxyyyzzz");
      },
      success: function(){
           alert('success');
      },
      error: function (xhr) {
             alert(xhr.responseText);
      }
    }
);

요청 헤더에 이 쿠키가 표시되지 않습니다.

JavaScript를 통해 CORS 요청에 대한 쿠키를 설정하거나 읽을 수 없습니다.CORS 에서는 크로스 오리진 요구를 허가하고 있습니다만, cookie 에는 브라우저의 같은 오리진 정책이 적용됩니다.즉, 같은 오리진의 페이지만이 cookie를 읽고 쓸 수 있습니다. withCredentials리모트 호스트에 의해 설정된 쿠키가 그 리모트호스트에 송신되는 것만을 의미합니다.리모트 서버로부터의 cookie는,Set-Cookieheader를 클릭합니다.

일반적으로 이것은 잘못된 관행이기 때문에 쿠키 공유 프로세스는 해결되지 않습니다.

JSONP를 유형으로 사용해야 합니다.

$.ajax 문서부터:교차 도메인 요청 및 dataType: "jsonp" 요청은 동기 작업을 지원하지 않습니다.

$.ajax(
    { 
      type: "POST",
      url: "http://example.com/api/getlist.json",
      dataType: 'jsonp',
      xhrFields: {
           withCredentials: true
      },
      crossDomain: true,
      beforeSend: function(xhr) {
            xhr.setRequestHeader("Cookie", "session=xxxyyyzzz");
      },
      success: function(){
           alert('success');
      },
      error: function (xhr) {
             alert(xhr.responseText);
      }
    }
);

최근 이 분야에 많은 변화가 있었기 때문에 참신한 답변이 도움이 될 것이라고 생각했습니다.

요청 중에 브라우저에서 다른 사이트로 쿠키를 보내려면 다음 기준을 충족해야 합니다.

많은 사람들이 리모트엔드포인트에 대한 로컬 개발을 시도하고 있습니다.이러한 조건이 충족되면 가능합니다.

저도 같은 문제가 있었어요.세션 ID는 쿠키로 전송되지만, 요청이 교차 도메인이기 때문에 브라우저의 보안 설정에 의해 쿠키가 전송되지 않습니다.

솔루션:(브라우저에서) 클라이언트에서 세션 ID를 생성하고 Javascript sessionStorage를 사용하여 세션 ID를 저장한 후 각 요청과 함께 세션 ID를 서버로 전송합니다.

나는 이 문제로 많은 어려움을 겪었고, 주변에 좋은 답이 많지 않았다.다음은 솔루션에 대한 자세한 기사입니다: Javascript Cross-Domain Request With Session

언급URL : https://stackoverflow.com/questions/14462423/cross-domain-post-request-is-not-sending-cookie-ajax-jquery

반응형