当前位置: 首页 > 知识库问答 >
问题:

Options来了,而不是put[重复]

陶唯
2023-03-14

这是前端部分

$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个答案

史旺
2023-03-14

options调用通常是单独进行的,以检查API是否允许CORS来自特定域的请求。

我很确定这里发生的事情是,当您进行put调用时,$HTTP首先进行options调用,以查看API是否支持cors。但既然它没有,它就返回了一个错误。在.catch块中捕获到此错误。

如果这是一个GET请求,您可以使用JSONP而不是GET(考虑到API支持的JSONP请求)。

但既然这不是,那么您可以在这里做两件事:

  1. 如果在API上有控件,则在API上设置域白名单。
  2. 创建一个代理,它将您请求中继到API。由于此代理将被视为服务器而不是客户端,并且由于CORS仅是基于浏览器的策略,您的请求将成功通过。

希望这有意义。

 类似资料:
  • 我正在使用Apache commons net FTPClient作为批处理作业的一部分分发文件。客户端是封装的,但大致上我发出了以下方法调用(为了简洁起见,我省略了错误处理、流处理等): 当我发出上述命令时,会将以下命令发送到FTP服务器: 这个很好用。然而,现在我需要将文件发送到一个旧系统,该系统不支持或,而是分别依赖和。。 现在我的问题是,如何让FTPClient使用这些命令? 我可以使用方

  • 我需要一些帮助,我不知道怎么做,但我的和<code>放入http。来自angular客户机的删除请求在中更改。我唯一的错误是: 如果有人有想法,谢谢回答我。 祝你今天愉快

  • 问题内容: 我正在使用express (最新)和以下代码: POST重定向到GET,但PUT重定向到PUT。是否可以将PUT重定向到GET(与POST相同)? 问题答案: 在详细讨论之前,下面是解决问题的一种方法: 默认情况下,Express使用HTTP代码302进行重定向。根据HTTP规范,这可以防止POST / PUT请求被重定向为POST / PUT请求,并解释了您在代码中观察到的内容: 如

  • 我试图通过PHP后端更新/插入MySQL数据库中的数据。我正在用AngularJS构建前端,并使用服务与REST API通信。 我的设置如下所示: 我正在通过$http提供商设置标头: POST Call如下所示: Chrome中的开发控制台向我展示了以下内容: 当我从POST转换为PUT时,我发送的是期权看涨期权,而不是PUT。而内容类型只切换到。 我的请求有效负载作为对象发送: 如何正确设置标

  • 问题内容: 我用Flask Restful开发了一个小型的只写REST api,该API接受来自少数可能具有更改IP地址的客户端的PUT请求。我的客户是运行AngularJS前端的嵌入式Chromium客户。他们使用一个简单的魔术密钥通过我的API进行身份验证- 这对于我非常有限的规模就足够了。 我正在测试部署我的API的过程,并且我注意到Angular客户端正在尝试向我的Flask服务发送OPT

  • 我试图通过向Fastify服务器发送PUT请求从客户端更新信息,但没有发送任何信息。也没有错误显示,只是没有变化。 POST和GET请求在客户端运行良好。 把请求工作在失眠/邮递员。 后端路由