选项来了,而不是 put [重复]
Posted
技术标签:
【中文标题】选项来了,而不是 put [重复]【英文标题】:Options is coming instead of put [duplicate] 【发布时间】:2019-02-07 13:46:36 【问题描述】:这是前端部分
$scope.result = ;
$scope.edit = function()
console.log($scope.result); //This is working
$http.put('http://localhost:4000/customer/' + $routeParams.id, $scope.result)
.then(function(data)
$scope.result = data;
console.log("posted successfully") //This is not working
)
.catch(function(err)
console.log(err);
);
每次都关注.catch
【问题讨论】:
【参考方案1】:OPTIONS
调用通常单独进行,以检查 API 是否允许对来自特定域的请求进行 CORS。
我很确定这里发生的情况是,当您进行 PUT
调用时,$http
首先进行 OPTIONS
调用以查看 API 是否支持 CORS
。但既然没有,它就会返回一个错误。此错误在您的 .catch
块中被捕获。
如果这是一个 GET 请求,您可以使用 JSONP
而不是 GET
(考虑到 API 支持的 JSONP
请求)。
但既然不是这样,你可以在这里做两件事:
-
如果您可以控制 API,请将您的域列入 API 白名单。
创建一个代理,它将您的请求中继到该 API。由于此代理将被视为服务器而非客户端,并且 CORS 只是基于浏览器的策略,因此您的请求将成功通过。
希望这是有道理的。
【讨论】:
以上是关于选项来了,而不是 put [重复]的主要内容,如果未能解决你的问题,请参考以下文章
当自动缩放组启动 EC2 时自动执行 grafana。而不是重复选项
.htaccess,X-frame-options 不覆盖值,而是在网络选项卡中重复显示