2016-11-29 1 views
0

는 IIS vb.net의 웹 서비스 또한 "이XMLHttpRequest에서 URL을로드 할 수 없습니다. 프리 플라이트에 대한 응답이 잘못 HTTP 상태 코드 (405)

을 던져 IE하지만 크롬과 파이어 폭스와 함께 작동하는 것 같군

<html> 
    <head> 
     <script type="text/javascript" src="./js/jquery-3.1.1.min.js"></script> 
     <script type="text/javascript" src="./js/json-2.4.min.js"></script> 
     <script type="text/javascript" src="./js/util.js"></script> 
    </head> 
    <body> 
    <script type='text/javascript'> 
     var myKeyVals = { userid : "USERID", password : "password", gkey : "key"} 
     $.ajax({ 
      url: "myurl", 
      type: "POST", 
      data: JSON.stringify(myKeyVals), 
      contentType: "application/json", 
      cache: false, 

      success: function(data, textStatus, jQxhr){ 
       alert(JSON.stringify(data)) 
      }, 
      error: function(jqXhr, textStatus, errorThrown){ 
       alert("error") 
      } 
     }); 
    </script> 

    </body> 
</html> 

에 JQuery와 아약스와 간단한 POST를 수행있다 XMLHttpRequest 객체는 URL을로드 할 수 없습니다. 프리 플라이트에 대한 응답이 잘못 HTTP 상태 코드 405 "오류가

내 Web.config의가있다

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

및 또한

<handlers> 
    <remove name="OPTIONSVerbHandler" /> 
    <add name="OPTIONSVerbHandler" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="bitness32" /> 
</handlers> 

과 같은 다수의 다른 게시물들.

답변

0

그래서 제 경우에는 global.asax가 없으므로 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 새 항목을 추가해야합니다. 여기에서 Global.asax를 추가 할 수 있습니다. Global.asax 내에서 BeginRequest 하위 항목에서 다음을 수행해야했습니다.

Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs) 
     'HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*"); 
     If HttpContext.Current.Request.HttpMethod = "OPTIONS" Then 
      HttpContext.Current.Response.AddHeader("Cache-Control", "no-cache") 
      HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST") 
      HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept") 
      HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000") 
      HttpContext.Current.Response.End() 
     End If 
    End Sub 
관련 문제