- vue的route会把query里的+替换为空号,所以如果有带+的参数,需要再替换回去
code=route.query.code.replace(/\s/,'+');
2.一个项目ajax有多个baseUrl,在封装成class,将baseUrl作为参数传入生成实例导出
if (process.env.NODE_ENV == 'development') { // 测试环境配置
baseUrl = '/api';
localBaseUrl = '/local';
} else { // 生产环境配置
baseUrl = BASEURL;
localBaseUrl = LOCALBASEURL;
}
class ApiClient {
constructor (url){
this.baseUrl = url;
this.service = axios.create({
baseURL: this.baseUrl,
timeout: 6000,
heders: {
'Content-Type': 'application/json;charset=utf-8'
}
});
this.service.interceptors.request.use() //
this.service.interceptors.response.use
}
requestCreater (url, method = 'get', options = {}) {
return data => {
return this.service({
url,
data,
method,
...options
});
};
}
}
//实例化
const requestInstance = new ApiClient(baseUrl);
const localRequestInstance = new ApiClient(localBaseUrl);
export {
requestInstance,
localRequestInstance
};
//这里为什么不直接导出const requestCreater= new ApiClient(baseUrl).requestCreater;?这样导出的话this就丢失了
//调用时记得实例的静态方法
requestInstance.requestCreater ()
localRequestInstance.requestCreater()
3.vue项目一直出现 sockjs-node/info?t=XX的解决办法
错误原因
sockjs-node 是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟、全双工的浏览器和web服务器之间通信通道。
服务端:sockjs-node(https://github.com/sockjs/sockjs-node)
客户端:sockjs-clien(https://github.com/sockjs/sockjs-client)
如果你的项目没有用到 sockjs,vuecli3 运行 npm run serve 之后 network 里面一直调研一个接口:http://localhost:8080/sockjs-node/info?t=
解决办法:
找到/node_modules/sockjs-client/dist/sockjs.js
ctrl+f查找self.xhr.send(payload),注释掉