vue访问接口定义全局变量
1.在config里面找到dev.env.js以及prod.env.js两个文件,分别写上定义的常量以及端口号,注意单引号双引号
2. 在ajax的时候直接写
`${process.env.URL_PATH}/app/appLogin`
或者
url: process.env.URL_PATH+'/app/appLogin',
在实际开发中,使用vue 后就是前后端分离开发了,这时候我们就需要访问后台的接口来拿到数据,需要URL,name,password来获取到token才能正常使用接口,下面就来配置。
1.找到config文件夹,在prod.env.js中添加一下代码(若没有此JS,自己创建一个就可以了)
'use strict'
module.exports = {
NODE_ENV: '"production"',
API_ROOT: '"//123.116.245.150:18081/api"',/*j后台接口地址*/
USER_NAME: '""',/*账号*/
PASS_WD: '""'/*密码*/
}
2.找到config文件夹,在dev.env.js中添加下面代码。
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
API_ROOT: '"//125.116.245.101:18081/api"',/*后台接口地址*/
USER_NAME: '"小小小"',/*账号*/
PASS_WD: '"123456"',/*密码*/
})
然后再登录页面的from中调用这里写的变量
form: {
name: process.env.USER_NAME,
password: process.env.PASS_WD,
},
在main.js中设置头部拦截器,代码如下
const url = process.env.API_ROOT;
axios.interceptors.request.use(
config => {
let token = localStorage.getItem("x-auth-token");
if (token) { // 判断是否存在token,如果存在的话,则每个http header都加上token
config.headers.token = `${token}`;
}
if (config.url.indexOf(url) === -1) {
let getTimestamp=new Date().getTime();
if(config.url.indexOf('?')>-1){
config.url = url + config.url +"×tamp="+getTimestamp;
}else{
config.url = url +config.url +"?timestamp="+getTimestamp;
}
}
return config;
},
err => {
alert(err)
return Promise.reject(err);
});
这样访问后台接口配置就完成了