2013-12-23 2 views
1

전화 갭, HTML5 및 jQuery를 사용하여 IPAD 응용 프로그램을 개발 중입니다. 내 웹 서비스는 폼 인증을 사용하는 ASP.NET WEBAPI를 기반으로합니다. API에 액세스하는 동안 인증 창이 사용자 이름과 암호를 묻는 중입니다. 사용자 이름과 암호를 입력 한 후에 결과를 얻을 수 있습니다. 그러나 jquery ajax를 사용하여 동일한 서비스를 사용하는 동안 "Unauthorized"라는 메시지와 함께 오류가 발생합니다. 어느 누구도이 문제에 도움이 될 수 있습니다.jQuery ajax를 사용하여 asp.net webapi 서비스 사용하기

를 ScriptBlock이있는 난의 URL이 서비스를 호출하는 방법을

$.ajax({ 
    type: 'POST', 
    url: 'https://myservice.com/api/mypostmethod', 
    data: { 
     'item': ItemXml, 
     'room': RoomXml 
     'User_Id': 12313 
    }, 
    success: function (result) { 
     ProcessResponse(result); 
    }, 
    error: function (xhr, textStatus, error) { 
     console.log("Local To Live - " + xhr.statusText); 
     console.log("Local To Live - " + textStatus); 
     console.log("Local To Live - " + error); 
    } 
}); 

액세스하는거야? 나는 또한 사용자 jQuery xhr 헤더를 시도하고 사용 된 코드는 아래와 같습니다.

function getAuthorizationHeader(username, password) { 
     var authType; 

     if (password == "") { 
      authType = "Cookie " + $.base64.encode(username); 
     } 
     else { 
      var up = $.base64.encode(username + ":" + password); 
      authType = "Basic " + up; 
     }; 
     return authType; 
    }; 



$.ajax({ 
       type: 'POST', 
       url: 'https://myservice/api/mypostmethod', 
       data: { 
        'item': '', 
        'room': '', 
        'User_Id': 12313 
       }, 
       beforeSend: function (jqXHR, Settings) { 
        var AuthHeaders = getAuthorizationHeader("username", "password"); 
        jqXHR.setRequestHeader("Authorization", AuthHeaders); 
       }, 
       success: function (result) { 
        ProcessSyncResponse(result); 
       }, 
       error: function (xhr, textStatus, error) { 
        alert("Error - StatusCode : "+xhr.status); 
       } 
      }); 

이 문제에 대한 도움을주십시오. 감사합니다. .

답변

0

폼 인증을 사용하도록 설정 한 경우 AJAX 호출을 통해 양식 인증을 사용하는 방법에 대한 예제는 this article을 참조하십시오. HTTPS를 통해 서비스와 통신하고 있는지 확인하십시오. 그렇지 않으면 심각한 보안 문제가 발생할 수 있습니다.

더 좋은 해결책은 토큰 인증을 구현하는 것이므로 요청에 사용자 이름/암호를 전달하지 않고 서버와의 일종의 상태 기반 연결을 유지할 필요가 없다고 생각합니다. 너는 이것을 조사해야한다.

관련 문제