2017-04-07 4 views
2

lib https://github.com/doedje/jquery.soap/을 사용하여 ionic 앱을 asmx 웹 서비스에 연결합니다.angularjs - 프리 플라이트 응답에서 Access-Control-Allow-Headers가 요청 헤더 필드를 허용하지 않습니다.

XMLHttpRequest cannot load http://10.10.9.169/UserService3/WebService1.asmxgetUserbyUsername . Request header field SOAPAction is not allowed by Access-Control-Allow-Headers in preflight response. jquery.soap.js:456 Uncaught Error: Unexpected Content: undefined

가 여기 내 controller.js 코드이다 : 그러나, 나는 오류 받고 있어요

<webServices> 
    <protocols> 
    <add name="HttpGet"/> 
    <add name="HttpPost"/> 
    </protocols> 
</webServices> 
<httpHandlers> 
    <add verb="GET,HEAD,POST,OPTIONS" path="*.asmx" type="System.Web.UI.WebServiceHandlerFactory" /> 
</httpHandlers> 

<httpProtocol> 
    <customHeaders> 
     <add name="Access-Control-Allow-Origin" value="*" /> 
     <add name="Access-Control-Allow-Headers" value="Content-Type, Authorization" /> 
     <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" /> 
    </customHeaders> 
</httpProtocol> 

암의 I :

$scope.enterlogin = function(usern,pass) 
{ 
    $.soap({ 
     url: 'http://<webservice's ip address>/UserService3/WebService1.asmx', 
     method: 'getUserbyUsername', 

     data: { 
      uname: usern, 
      passw: pass 
     }, 

     success: function (soapResponse) { 
      console.log('response is = ' + soapResponse); 
     }, 

     error: function (soapResponse) { 
      // show error 
      console.log('response error is = ' + soapResponse); 
     } 
    }); 
} 

을 나는 또한하여 웹 서비스의 web.config 파일에 다음을 추가했습니다 무언가를 놓침?

답변

0

오류 메시지는 요청에 SOAPAction이라는 헤더가 있음을 나타냅니다.

<add name="Access-Control-Allow-Headers" 
    value="SOAPAction, Content-Type, Authorization" /> 
: 당신이 당신의 web.config 파일의 다음 부분에 해당 헤더 이름을 추가 할 필요가 같은

그래서 것 같다