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

ReactJS:已被CORS策略阻止:对起飞前请求的响应不通过权限改造检查

龙俊美
2023-03-14

我在chrome上遇到了以下问题:

访问“http://*****/places?holiday_type=resort”获取信息

我的代码是:

getPlaces = async () => {
try {
  let response = await fetch(`${BASE_URL}/places?holiday_type=resort&currency=EUR&checkin=2019-11-01&checkout=2019-11-10&groups[]=1`,
    {
      method: 'GET',
      headers: new Headers({
        'Accept': 'application/json',
        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept, Authorization',
        'Access-Control-Request-Method': 'GET, POST, DELETE, PUT, OPTIONS',
        'Authorization': 'Basic ' + Base64.encode(apiuser + ':' + apipassword) ,
      }),
    })

    console.log(response)
} catch (error) {
  console.log(error)
}

}

共有2个答案

闽念
2023-03-14

CORS的工作原理是添加新的HTTP标头,允许服务器描述允许使用网络浏览器读取信息的源集。这必须在服务器中配置,以允许跨域。

你可以通过一个叫做CORS的chrome插件暂时解决这个问题。

复制自:如何在react.js中允许COR?

参考:如何克服ReactJS中的CORS问题?

宿文栋
2023-03-14

外部API经常阻止这样的请求。我猜你正在使用类似API-Key的东西来处理你的请求,其中包括根据你的通话进行支付。问题是,当您在前端调用API时,每个用户都可以读取您的密钥。这就是为什么服务器阻止这些。

您需要自己创建一个服务器(例如,使用node.js),调用后端API,然后使用您的机密API密钥“转发”您的请求公共API。服务器到服务器的请求不会被阻止,您的用户也无法利用您的API密钥。如果您想公开请求,还应该确保后端服务器不接受不是前端的请求。

 类似资料:
  • 我已经创建了一个应用程序,使用角和springboot进行Spring安全的基本身份验证,但我得到401错误...我是springboot新手 “从源'http://localhost:4200'访问'http://localhost:8080/hello-world/path-variable/MSD'的XMLHttpRequest已被CORS策略阻止:对预检请求的响应未通过访问控制检查:它没有

  • 选项https://dev-01-api-apptracker2/管理员401(未经授权) 从源https://dev-01-web-apptracker2在'https://dev-01-api-apptracker2/Admin'访问XMLHttpRequest'已被CORS策略阻止:对起飞前请求的响应不通过权限改造检查:请求的资源上不存在'Access-Control-允许-Origin'标

  • 我已经在后端设置了cors,我只是不知道为什么我收到404错误,当网址是正确的。错误是访问XMLHttpRequest在'http://localhost:3008/api/vehicle'从源'http://localhost:3007'已被阻止CORS策略:响应飞行前请求不通过权限改造检查:它没有HTTP确定状态。我还在下面添加了我的api跨域。请检查下面的示例代码。这个问题的解决办法是什么?

  • 我正在用Codeigniter 4制作一个反应应用程序的api。在邮递员中一切正常,但当我用axios提出请求(也尝试获取)时,它会出现CORS错误 CORS策略阻止从http://localhost:8080/testposthttp://localhost:3000访问XMLHttpRequest:对预试请求的响应不通过权限改造检查:请求的资源上不存在访问控制允许起源标头。 我尝试将标题添加到

  • 问题内容: 我已经创建了旅行服务器。它工作正常,我们可以通过Insomnia 进行请求,但是当我们通过前端的axios 进行请求时,它将发送错误: 我们对axios的要求: 我的文件: 就像我之前在Insomnia上所说的那样,它工作得很好,但是当我们发出axios 请求时,在浏览器的控制台上会显示以下内容: 已被CORS政策阻止:对预检请求的响应未通过访问控制检查:它没有HTTP正常状态。 问题

  • 当我试图通过Chrome的ajax请求访问API时,我收到了以下响应: "加载http://localhost:1880/api_resource失败:对预试请求的响应没有通过权限改造检查:请求的资源上没有'Access-Control-允许-起源'标头。因此,原产地http://localhost:3000不允许进入。" 从消息中可以看到,客户端和API都在本地运行。 据我所知,这种情况与COR