我在跨域使用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;
});
能够击中控制器,但数据为空。
答案 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