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

axios自动调谐头/CORS错误

董永宁
2023-03-14

我正在使用与axios的反应来获取一些信息。我正在向授权用户发送JWT令牌,并在控制台浏览器中获得响应

“访问位于的XMLHttpRequest”https://beer-tonight.herokuapp.com/beer/getBeerStatus“起源”http://localhost:3000'已被CORS策略阻止:飞行前响应中的访问控制允许标头不允许请求标头字段授权。“

这是我的代码:

componentWillMount(){

    let token = localStorage.getItem('token');


    axios.get('https://beer-tonight.herokuapp.com/beer/getBeerStatus', {headers: {Authorization : 'Bearer ' + token}}).then(
    result => {
        console.log('yey');
    });
}

错误:

当我使用邮递员时,我得到了正确的答案。

邮递员输入:

p、 我已经补充说:

app.use((req, res,next)=>{
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorisation');
next();

共有2个答案

陶法
2023-03-14

我相信您收到的cors错误来自您的node.jsapi。(https://beer-tonight.herokuapp.com/beer/getBeerStatus)

由于主机不相同(beer.herokuapp.comlocalhost不匹配),因此需要为node.js服务器启用cors。

如果您使用Express:

const express = require('express');
const cors = require('cors');
const app = express();

app.use(cors());

// ...

资料来源:这里

Hapi.js:

server.connection({ routes: { cors: true } })

资料来源:这里

一旦启用了CORS,一切都会顺利进行。更多关于CORS的信息

微生信鸿
2023-03-14

您已经编写了授权

res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorisation');

但是标题是授权,正如您在axios中使用的那样,请尝试更改它,然后看看它是否有效,

 类似资料:
  • 如果我从本地前端(也是浏览器)访问本地后端,它会工作:上面的错误不会显示在浏览器控制台中,我会获得数据)。 如果我做了这些选项或接到邮递员的电话到Google Cloud后端,它就有效了。 我注意到,对于Postman,我需要在OPTIONS请求中包含标头,以便将承载令牌发送到Google以使其工作。浏览器不会在选项调用中发送任何标头,即使我将添加到Axios配置中,如下所示: 发送标头中的令牌不

  • 我正在使用Laravel version 7构建自己的API,但是当我从vuejs(实际上是quasar)向Laravel发出请求时,我会得到:“从origin”http://127.0.0.1:8080/API/login“访问XMLHttpRequest”已被CORS策略阻止:请求的资源上没有'Access-Control-Allog-Origin'标头“。 为了快速解决这个问题,我尝试添加(

  • 我正在尝试从react前端查询我的Azure搜索门户。我已启用正确索引上的所有COR。当我用fetch查询时,我得到的数据很好,但是当我用axios查询时,我得到了以下错误 CORS策略阻止从源http://localhost:3000在maskedurl访问XMLHttpRequest:对预试请求的响应不通过权限改造检查:请求的资源上不存在访问控制允许源标头。 这是我的组件 这是我在名为azur

  • 试图将axios post请求从Vue应用程序(localhost)发送到我的nodejs API(localhost和heroku)。 如果请求是在没有数据或头的情况下发送的,则接收响应不会有问题,但是当我添加它们时,我会收到以下错误: 我已经尝试了不同的选择,服务器端和客户端,建议类似的问题,但没有成功。 客户端请求: 服务器endpoint: 我尝试了一些答案: 对预飞行请求的响应没有通过访

  • 问题内容: 我在package.json中添加了proxy,效果很好,但是在npm run build之后,CORS问题再次浮出水面,有人知道在React中npm run build之后如何处理CORS问题。 我试图使用各种方法在axios请求中添加标头。但是,我未能在axios请求中添加’Access-Control-Allow- Origin’:’*’。我的代码如下: package.json

  • 我试图生成一个简单的axios请求,如下所示(我正在使用vue.js): 但我得到以下错误: 我已经尝试过添加下面的头,但仍然不起作用 但是如果我尝试通过浏览器发出请求(简单地通过复制和粘贴url),一切都很好。 有人知道怎么帮我吗?非常感谢!