2011-12-12 2 views
1

기본 인증을 통해 사용자를 인증하는 OData .NET 웹 서비스를 호출하고 싶습니다.기본 인증 및 jQuery/ajax 호출

나는 다음을 사용 아약스 전화 :

var fullUri = APIUri + "?$format=json"; 
$.ajax({ 
    url: fullUri, 
    contentType: "application/json", 
    dataType: "jsonp", 
    type: 'GET', 
    jsonp: '$callback', 
    beforeSend: function setHeader(xhr) { 
     xhr.setRequestHeader('Authorization', token); 
    }, 
    success: callback, 
    error: function (xhr, ajaxOptions, thrownError) { 
     alert(thrownError); 
    }, 
}); 

결과는 나를 위해 사용할 수 있습니다

  • 전화 때문에 내가 API URL을 붙여 크롬에서로드하려고합니다까지 CORS (의 차단). 로컬 HTML 파일과 HTML 파일을 동일한 도메인/포트에 업로드했지만 Chrome 콘솔에 따라 인증에 실패했습니다.
  • 크롬 주소 표시 줄에 서비스 URL을 입력하면 Chrome에서 로그인 이름과 비밀번호를 제공해야합니다. 내가 그들에게 들어가면, 그들은 캐스팅되어 사용되기도 전에 나는 그것들을 beforeSend에 할당한다. 이 동작을 차단하는 방법?

jsonp, 헤더 등을 구성하는 방법을 많이 시도했지만 아직 해결 방법을 찾지 못했습니다.

IIS 서버 응답 헤더도 "Access-Control-Allow-Origin"값 = "*"을 사용하여 구성됩니다.

답변

0

직접 AJAX 호출의 HTTP 암호 및 사용자 이름을 설정할 수 있습니다

$.ajax({ 
    url: fullUri, 
    contentType: "application/json", 
    username: <login>, 
    password: <password>, 
    ... 
0

사용하는 CORS 지원하기 위해 다음

jQuery.support.cors = true; 

호출에 대해서는를, 당신은 HTTPS를 사용하고 있습니까? 인증서가 유효합니까?

+0

HTTPS가 필요합니까? HTTP 만 사용하지 않습니다. –

+0

번호. 나는 단지 묻고 있었다 :) –