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

如何从请求中删除授权标头 [重复]

仲和韵
2023-03-14

我正在使用 MEAN 堆栈用户注册和登录示例

$http.defaults.headers.common['Authorization'] = 'Bearer ' + $window.jwtToken;

我想将图像上传到Cloudinary,但收到此错误:

XMLHttpRequest无法加载https://api.cloudinary.com/v1_1/xxxx/upload.请求标头字段授权不被预检响应中的Access-Control-Allow-Headers允许。

如何为Cloudinary的请求删除此标头?

共有2个答案

平航
2023-03-14

这个问题以前被问过。答案可以在这里找到。

当你开始使用自定义请求标题时,你会得到一个CORS预检。这是一个使用HTTP OPTIONS动词的请求,包括几个头,其中一个头是Access-Control-Request-Headers,列出了客户端希望包含在请求中的头。

你需要用适当的CORS标题回复CORS的飞行前检查,这样才能工作。其中之一实际上是访问控制允许报头。该报头需要包含与Access-Control-Request-Headers报头相同(或更多)的值。

洪弘亮
2023-03-14

您将需要一个拦截器来检查请求的url,如果匹配就清除报头。或者,您可以使用< code>$http配置参数。

使用参数:

$http.post('https://api.cloudinary.com/v1_1/' + someId + '/upload', data, { headers: {} });

使用拦截器:

.factory('cloudinaryInterceptor', function() {
 return {
  request: function(config){
   var authHeader = config.headers('authorization');
   //Check for the host
   var regex = /api\.cloudinary\.com/i;
   if(regex.test(config.url))
    //Detach the header
    delete config.headers.authorization;
   return config;
  }
 }
});

记得在配置阶段推送拦截器

$httpProvider.interceptors.push('cloudinaryInterceptor');
 类似资料:
  • 我正在尝试从这个 API 调用中创建“UUID”,我正在使用 axios 和 vue.js。这是我的源代码。 但不幸的是,我得到了 在'访问XMLHttpRequesthttps://www.uuidtools.com/api/generate/v1'从原点'http://localhost:8080'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“access c

  • 我有一个angular应用程序,只要我按照以下步骤添加serviceWorker: https://github.com/angular/angular-cli/blob/master/docs/documentation/build.md#service-workerhttps://angular.io/guide/service-worker-getting-started …我的API请求不

  • 问题内容: 这是我的第一篇文章。 我刚刚开始学习Go和Angular,并且尝试将angular应用程序连接到go api。我已经写了这两本书,并且一直坚持找出问题的根源。我以为这是一个CORS问题,但是如果我在Angular http请求中不包含代码的标题行,它就可以正常工作。在这一点上,我只是想添加标题。授权代码尚未实现。 这两个应用程序都在本地运行,端口5000上的Go应用程序和4200端口上

  • HTTP规范说; HTTP访问身份验证在“HTTP身份验证:基本和摘要访问身份验证”[43]中进行了描述。如果请求经过身份验证并指定了一个领域,则相同的凭据应该对该领域内的所有其他请求有效(假设身份验证方案本身不需要其他凭据,例如根据质询值变化的凭据或使用同步时钟)。 我真的不明白这意味着什么,但这是我的情况,这里有反对 HTTP 规范的东西吗?我使用 Java Rest 服务 客户端使用HTTP

  • 问题内容: 我有一个react / redux应用程序,可从api服务器获取令牌。用户验证后,我想使所有axios请求都将该令牌作为Authorization标头,而不必手动将其附加到操作中的每个请求。我对React / Redux相当陌生,并且不确定采用最佳方法,也没有在Google上找到任何高质量的点击。 这是我的redux设置: 我的令牌存储在的redux存储中。 我对如何进行有点迷茫。我试

  • 我使用springfox 2.9.2我有这样的api: 女巫来自身份验证服务器。我尝试在swagger中首次调用此服务器,并将其传递给像上面这样的控制器请求。所以我做 在Swagger ui上,授权调用成功返回了令牌,但它没有将令牌添加到请求头中。它会产生 如果我像这样设置令牌: