问题
在项目中向后端进行 ajax 请求时,出现游览器阻止跨域请求的问题。

引入 axios,并解决跨域
- axios 在 index.html 用 cdn 引入
<script src="https://cdn.bootcss.com/axios/0.18.0/axios.min.js"></script>
- 在 webpack.base.conf.js 文件下添加外部环境配置
externals: {
'mint-ui': 'MINT',
'vue': 'Vue',
'vuex': 'Vuex',
'axios': 'axios'
},
- main.js下导入
import axios from 'axios'
Vue.prototype.axios = axios
//指定json
axios.defaults.headers['Content-Type'] = 'application/json'
//url前自动加上 /api
axios.defaults.baseURL = '/api'
- config/index.js 添加代理
proxyTable: {
'/api':{
target: "http://127.0.0.1/api", //这里写上ajax请求的url前部分
changeOrigin:true,
pathRewrite:{
'^/api':''
}
}
},
通过以上设置,axios跨域操作时,游览器不再报错
- 使用 axios 进行 ajax 请求
this.axios({
method: 'POST',
url: '/auth/login',
dataType: 'json',
params: {
username: this.username,
password: this.password
}
}).then((response) => {
console.log(response.headers.token)
alert('ok')
}).catch((e) => {
console.log(e.response.data.message)
})
- 游览器不再报错

网友评论