对Preflight的响应响应405错误代码:Angular JS

时间:2016-06-28 03:07:29

标签: angularjs http

我在跨域使用API​​调用,其中In chrome我得到了这个响应。我在其他域中的REST API中包含了所有标头。

  <add name="Access-Control-Allow-Origin" value="*"/>
        <add name="X-Content-Type-Options" value="nosniff"/>
        <add name="X-XSS-Protection" value="1;"/>
        <remove name="X-Powered-By"/>
        <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept"/>
        <add name="Access-Control-Allow-Methods" value="POST,GET"/>

这是我从角度调用的API调用。

$scope.XYZ=customURLWithoutArray.save({
         controller:"XYZController",
            actionName:"ABCACTIONNAME",
             UserId: "VC"
         },
            function($success){

       return $success;
              },function($error){
      return $error;
    });    

能够击中控制器,但数据为空。

1 个答案:

答案 0 :(得分:0)

您可能已经知道,预检请求会发送HTTP OPTIONS请求。

在你的配置中(我假设它的某些IIS服务器?)你有这个:

 <add name="Access-Control-Allow-Methods" value="POST,GET"/>

这意味着您不允许OPTIONS

所以尝试将其修改为:

 <add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS/>

有关为CORS配置IIS的更多信息:
https://stackoverflow.com/a/31084417/6139050