最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

已被CORS策略阻止:对预检请求的响应未通过访问控制检查:否'Access

运维笔记admin14浏览0评论

已被CORS策略阻止:对预检请求的响应未通过访问控制检查:否'Access

已被CORS策略阻止:对预检请求的响应未通过访问控制检查:否'Access

[我正在从http://localhost:8080在本地运行Vue应用程序,但不断出现CORS错误,我添加了Access-Control-Allow-Origin标头,但受到打击,但始终收到以下警告:

来自源[http://localhost:8080'的

'已被CORS策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上没有'Access-Control-Allow-Origin'标头。如果不透明的响应满足您的需求,请将请求的模式设置为“ no-cors”以在禁用CORS的情况下获取资源。

const graphCall = () => {

  let tokenOptions = {
    method: 'POST',
    uri: '/**key**/oauth2/v2.0/token',
    headers: {
      'Access-Control-Allow-Origin': 'http://localhost:8080',
      'contentType': 'application/x-www-form-urlencoded'
    },

    form: {
      grant_type: VUE_APP_GRANT_TYPE,
      client_secret: VUE_APP_CLIENT_SECRET,
      scope: VUE_APP_SCOPE,
      client_id: VUE_APP_CLIENT_ID
    }

  };

  return rp(tokenOptions)
    .then(data => {

      console.log(data)


    }).catch((err) => {

      console.log(err);

    });
};

我尝试添加模式:'no-cors',但仅获得以下内容-错误:opts.mode的值无效

我也尝试过将'*'作为访问控制源,但无济于事。

是否有办法解决这个CORS噩梦,因为我们需要打这个电话来检索密钥!

回答如下:

服务器必须允许您的来源,在这种情况下为http://localhost:8080。通常,在与提供程序进行交互的情况下,在创建令牌的管理门户中,还必须指定要从中调用它的域。

如果不是这种情况,您可能会触发CORS,因为您使用的标头不在CORS安全列表中。https://fetch.spec.whatwg/#cors-safelisted-request-header

Access-Control-Allow-Origin通常是服务器在响应中提供的标头,并不意味着应在请求上发送它。

以下链接帮助我更好地了解了CORS。https://developer.mozilla/en-US/docs/Web/HTTP/CORS

请注意,允许*的来源对于开发是很好的,但对于生产应用程序则不建议这样做。

发布评论

评论列表(0)

  1. 暂无评论