vue axios 跨域
时间: 2023-09-22 18:09:23 浏览: 116
Vue使用Axios发送跨域请求,需要在服务端设置响应头。常见的解决方式有两种:
1.在服务端设置响应头
在服务端设置响应头,允许特定的域名访问接口。例如,如果你的Vue应用运行在http://localhost:8080,可以在服务端设置以下响应头:
```
Access-Control-Allow-Origin: http://localhost:8080
Access-Control-Allow-Credentials: true
```
2.使用代理
在Vue项目中配置代理,将请求转发到服务端,避免跨域问题。在`vue.config.js`文件中添加以下配置:
```
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://localhost:3000', // 服务端地址
changeOrigin: true,
pathRewrite: {
'^/api': '' // 如果接口路径中没有api前缀,可以将它去掉
}
}
}
}
}
```
这样,在Vue项目中发送请求时,可以将请求路径设置为`/api`开头,例如:`axios.get('/api/users')`。这样的请求会被代理到`http://localhost:3000/users`上。
注意,使用代理方式需要注意一些安全性问题,例如恶意攻击者可以通过改变请求路径来访问敏感接口。因此,在服务端需要对请求进行鉴权和过滤。
阅读全文