2015-01-06 3 views
0

여기 내 코드입니다. 기본 인증을 기반으로 API를 사용하는 크로스 도메인 URL을 요청하고 싶습니다.기본 승인을위한 ajax 세트 헤더가 작동하지 않습니다.

하지만 작동하지 않습니다. 요청 헤더에 인증 정보가 표시되지 않았습니다. 당신의 $.ajax()에 다음 콜백을 추가

$(document).ready(function() { 
 
    $.ajaxSetup({ 
 
     headers: { 
 
      'Authorization': "Basic amlhemhc6SUxvdmVAkYXk="), 
 
      'Content-Type': 'application/json;charset=utf-8' 
 
     } 
 
    }); 
 
    var request = $.ajax({ 
 
     url: "http:localhost:8080/query", 
 
     type: "POST", 
 
     data: '{"sql":"select count(*) from summary"}', 
 
     dataType: "json" 
 
    }); 
 
    request.done(function (msg) { 
 
     alert(msg); 
 
    }); 
 

 
    request.fail(function (jqXHR, textStatus) { 
 
     alert("Request failed: " + textStatus); 
 
    }); 
 
});
enter image description here

+0

종류는 관계가 없지만 JSON 객체에는 문자열을 사용하지 마십시오. 대신 JSON.stringify ({ 'sql': ....})'를 사용하십시오! – ThiefMaster

+0

http://stackoverflow.com/questions/5507234/how-to-use-basic-auth-and-jquery-and-ajax –

+0

이 문제가 발생 했습니까? – Mukus

답변

0

시도 :

var request = $.ajax({ 
     url: "http:localhost:8080/query", 
     type: "POST", 
     data: '{"sql":"select count(*) from summary"}', 
     dataType: "jsonp", 
     processData: 'false', 
     xhrFields: { 
       withCredentials: 'true' 
     }, 
     crossDomain: 'true' 
    }); 
+0

cors 도메인 요청을 지원하려면 Access-Control-Allow-Origin : *을 응답에 추가하십시오. 내가 제안한대로 수정하면 다음과 같은 오류가 발생합니다 ('와일드 카드'* '는'액세스 '에서 사용할 수 없습니다. 'http : // localhost : 9000'의 출처는 액세스가 허용되지 않습니다.) –

+0

'*'를 사용하는 대신 정확한 도메인을 입력 해 보셨습니까? 자격 증명을 사용하기 때문에이 오류가 보안의 일부이므로이 오류가 발생합니다. 'Access-Control-Allow-Origin : 당신의 도메인 ' – Aditya

+0

예, 그렇지만 여전히 401 상태 코드와 필드가 없습니다. 요청 헤더에 권한이 있습니다. –

0

여전히 나던 일 후 당신이 좀 걸릴 수 있습니다 경우의 모양은 당신의 아약스 CORS here에 대한 내 게시물 중 하나이며 어떤 문제가 무엇인지 확인하십시오

ajaxOpts = { 
     url:"https://"+server_name+"/post_link/", 
     crossDomain:true, 
     xhrFields: {withCredentials:true}, 
     type:'POST', 
     data: jQuery('#some_form').serialize(),//or your data 
     dataType:'json', 
     success: { 
      //do something 
     }, 
     error: { 
      //do something 
     }, 
    }; 
    jQuery.ajax(ajaxOpts); 

희망 하시겠습니까?

관련 문제