在vite中设置了Access-Control-Allow-Origin: *还是跨域,前端怎么解决
时间: 2023-11-16 20:00:45 浏览: 290
Ajax 设置Access-Control-Allow-Origin实现跨域访问
5星 · 资源好评率100%
如果在Vite中设置了Access-Control-Allow-Origin: *,但仍然存在跨域问题,可能是因为浏览器预检请求OPTIONS的响应头不包含Access-Control-Allow-Headers字段。
解决方案可以通过在Vite的配置文件中添加中间件来处理OPTIONS请求,例如:
```js
// vite.config.js
export default {
server: {
middleware: {
async handle(request, response, next) {
if (request.method === 'OPTIONS') {
response.writeHead(200, {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization',
'Access-Control-Expose-Headers': 'Content-Length,Content-Range',
'Access-Control-Allow-Credentials': true
})
response.end()
} else {
await next()
}
}
}
}
}
```
通过上述中间件,设置OPTIONS请求的响应头,让浏览器能够正确处理跨域请求。
阅读全文