axios vue 跨域
时间: 2023-11-28 07:45:36 浏览: 140
Axios是一个基于Promise的HTTP客户端,可以用于浏览器和Node.js。Vue中使用Axios可以方便地进行HTTP请求。在Vue中使用Axios进行跨域请求,可以通过以下两种方式解决:
1. 在Vue中进行配置
可以在Vue的配置文件中设置Axios的默认配置,包括跨域请求的相关配置。具体步骤如下:
① 安装Axios
```shell
npm install axios --save
```
② 在main.js中引入Axios并进行配置
```javascript
import axios from 'axios'
// 设置Axios的默认配置
axios.defaults.baseURL = 'http://localhost:8080' // 设置请求的基础URL
axios.defaults.timeout = 5000 // 设置请求超时时间
// 设置Axios的跨域请求相关配置
axios.defaults.withCredentials = true // 允许携带cookie
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded' // 设置POST请求的请求头
// 将Axios挂载到Vue的原型上,方便在组件中使用
Vue.prototype.$axios = axios
```
③ 在组件中使用Axios进行跨域请求
```javascript
this.$axios.get('/api/user', {
params: {
id: 1
}
}).then(res => {
console.log(res.data)
}).catch(err => {
console.log(err)
})
```
2. 使用Nginx转发
可以使用Nginx作为反向代理服务器,将Vue的请求转发到后端服务器上,从而实现跨域请求。具体步骤如下:
① 安装Nginx
```shell
sudo apt-get install nginx
```
② 配置Nginx
在Nginx的配置文件中添加以下内容:
```nginx
server {
listen 80;
server_name localhost;
location /api {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
其中,`/api`是Vue的请求路径,`http://localhost:8080`是后端服务器的地址。
③ 在组件中使用Axios进行跨域请求
```javascript
this.$axios.get('/api/user', {
params: {
id: 1
}
}).then(res => {
console.log(res.data)
}).catch(err => {
console.log(err)
})
```
阅读全文