跨域了?咋办

196 阅读1分钟

使用axios发起请求的时候,你是否见过这种类型的错误,如下

image.png

其实对于英语比较好的小伙伴可能一眼就能看出问题出在哪里,但是对于我们这种天生英语不好的程序员有道就显得格外重要

11.jpeg


其实这句话的大概意思是 请求资源上没有“Access-Control-Allow-Origin”报头

最简单的解决方式就是通过在被请求的路由中设置header头,可以实现跨域。

app.get('/get', (req, res) => {
  // * 表示允许任何域名来访问
  res.setHeader('Access-Control-Allow-Origin', '*')
  // 允许指定源访问
  // res.setHeader('Access-Control-Allow-Origin', 'http://www.xxx.com')
  res.send(Date.now().toString())
})

这种方式虽然简单但是问题来了?如果我们的页面有100请求呢?岂不是要请求100次,代码就会显得非常冗余

这时候我们就可以 使用使用CORS包来帮我们解决这个问题

1.下载使用 npm i cors
2.当做express中的中间件,注意代码应该放在顶部
var cors = require('cors')
3.处理跨域
app.use(cors())