답변
jQuery 1.5에서는 기능이 손상 될 것으로 예상됩니다.
jQuery 1.5.1부터 xhrFields param을 사용해야합니다.
$.ajaxSetup({
type: "POST",
data: {},
dataType: 'json',
xhrFields: {
withCredentials: true
},
crossDomain: true
});
문서 : http://api.jquery.com/jQuery.ajax/
보고 된 버그 : http://bugs.jquery.com/ticket/8146
답변
beforeSend
콜백을 사용하여 추가 매개 변수를 설정할 수 있습니다 ( XMLHTTPRequest
객체가 유일한 매개 변수로 전달됨).
아시다시피 이러한 유형의 교차 도메인 요청은 일반적인 사이트 시나리오에서는 작동하지 않으며 다른 브라우저에서는 작동하지 않습니다. 나는 FF 3.5가 어떤 보안 제한을 부과하는지조차 알지 못하기 때문에 아무것도 위해 벽에 머리를 부딪히지 마십시오.
$.ajax({
url: 'http://bar.other',
data: { whatever:'cool' },
type: 'GET',
beforeSend: function(xhr){
xhr.withCredentials = true;
}
});
한 가지 더주의해야 할 점은 jQuery가 브라우저 차이를 정규화하도록 설정되어 있다는 것입니다. 이러한 유형의 기능을 금지하는 jQuery 라이브러리에 의해 추가 제한이 부과된다는 것을 알 수 있습니다.
답변
jQuery 3 및 이전 버전에서는 다음과 같은 간단한 구성도 개별 요청에 대해 작동합니다.
$.ajax(
'https://foo.bar.com,
{
dataType: 'json',
xhrFields: {
withCredentials: true
},
success: successFunc
}
);
Firefox Dev Tools-> Network 탭 (개별 요청의 보안 탭)에서받은 전체 오류는 다음과 같습니다.
foo.bar.com에 연결하는 동안 오류가 발생했습니다 .SSL 피어가 허용 가능한 보안 매개 변수 집합을 협상 할 수 없습니다. 오류 코드 : SSL_ERROR_HANDSHAKE_FAILURE_ALERT