访问被CORS策略阻止。对预检请求的响应未通过访问控制检查

时间:2019-01-30 09:17:30

标签: javascript reactjs cors fetch axios

我要做的是检查Web应用程序的用户是否可以访问特定的URL地址,这取决于将显示一些用户信息。

我试图做的是仅使用fetch / axios发送GET请求,但最终出现以下错误: 从源“ https://foo.com/”到“ https://localhost:3000”的访存访问已被CORS策略阻止:所请求的资源上没有“ Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“ no-cors”以在禁用CORS的情况下获取资源。

然后我在请求中添加了特定的标头,因此我的提取如下所示:

 urlFetch() {
    const testURL = 'https://foo.com'
    const myInit = {
      method: 'GET',
      mode: 'cors',
      headers: {
        'Access-Control-Allow-Origin': 'https://foo.com',
        'Access-Control-Allow-Methods': 'DELETE, POST, GET, OPTIONS',
      },
    }

    const myRequest = new Request(testURL, myInit)

    fetch(myRequest)
      .then(
        function(response) {
          console.log(response)
          return response
        },
        err => {
          console.log(err)
        }
      )
      .catch(function(e) {
        console.log(e)
      })
  }

我现在得到的警告是: 从原点“ https://foo.com/”到“ https://localhost:3000”的提取操作已被CORS政策阻止:对预检请求的响应未通过访问控制检查:预检请求不允许重定向。

我也尝试设置'no-cors'模式-得到响应,但是显然没有数据(但是状态码为200)。 为了解决我的问题,实际上我不需要发送请求的页面中的任何数据本身-我只需要知道用户是否可以访问它即可。 我无权访问url的后端,不幸的是,在这种情况下,不能安装任何浏览器扩展。

预先感谢。

0 个答案:

没有答案