这两天项目需要,需要给所有项目中添加灰度发布,说白了,就是在每个请求接口的头部添加Service-Type字段,同事在忙着开发调试,正好我手里没啥事,就自己全做了,前几个项目照着文档改一下,本地调试,环境测试都成功了,到最后一个项目的时候,本地调试好好的,可是一上环境怎么编写都出错,废话不多说,直接上图(左边本地调试,右边环境)
折腾了好一会儿,才想起来看代码,之前的那几个vue项目都是通过npm打包,在main.js里面配置,代码如下// 灰度测试 axios全局添加请求头
let setHttpHeader = {'Service-Type' : 'grey'};
Axios.interceptors.request.use(function (config) {
if (setHttpHeader) {
for ( let headerKey in setHttpHeader ) {
config.headers[headerKey] = setHttpHeader[headerKey];
}
}
return config;
}, function (error) {
return Promise.reject(error);
})
这个项目比较简陋,没有main.js 看了一下代码时在config.js里面引用的ajax,所以在这里配置了,没有多想就按着原来的方式把代码放上去,如下,本地调试是好的,可是一上环境打开F12查看代码就能看到 let setHttpHeader = null;
试了好多种方法,最后突然想到,会不会在这个文件中他只认WebConfig下面定义的属性和值,于是将代码改成如下格式、
这次再将代码打到环境上,竟然好了,没有再报错,打开控制台,查询请求接口头部信息,出现来第一张图中左边的效果
致此,结束,当然,如果上面将setHttpHeader放在Webconfig中定义,下面的方法使用的时候要注意哦,最后附上修改的完整代码
网友评论