2015-01-31 1 views
1

기본 인증이 필요한 다른 도메인의 서버에 POST 요청을 보내려고합니다.다른 도메인 및 기본 인증을 사용하여 서버에 대한 ajax POST 요청을 작성하는 중입니까?

beforeSend와 withCredentials의 모든 조합을 시도했지만 기본 인증 헤더가 OPTIONS 프리 플라이트 요청에서 전송되지 않습니다. 내가 성공이 요청을 얻을 수가 있습니다

$.ajax({ 
     url: anotherdomain, 
     data: data, 
     cache: false, 
     contentType: false, 
     processData: false, 
     type: 'POST', 
     dataType:'json', 
     xhrFields: { 
     withCredentials: true 
     }, 
     crossDomain: true, 
     beforeSend: function(xhr) { 
     xhr.setRequestHeader('Authorization', 'Basic *'); 
      xhr.withCredentials = true;   
     } 

유일한 방법은 'JSONP'에 데이터 유형을 설정, 또는 GET으로 요청 '유형'을 설정하는 것입니다.

OPTIONS 요청에 대해 anotherdomain 서버에서 기본 인증 요구 사항을 제거하는 유일한 방법은이 문제입니까?

감사합니다.

답변

0
또한 서버에서 헤더를 허용해야합니다

:

header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS'); 
header('Access-Control-Max-Age: 1000'); 
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With'); 
: 여기 는 PHP 예입니다 (모든 기원에 대한 요청에 대해 열려, 당신은 아약스를 생성하는 사이트로 제한하는 것이 좋습니다)
관련 문제