问题描述
最近在开发小程序,用到了fly.js,我们项目在网络请求的时候需要进行验签,需要把验签需要的结果像参数那样传到后台,废话不多说,上代码
//config.js
fly.interceptors.request.use((config,promise)=>{
console.log(config)
wx.showLoading({
title: '加载中',
mask:true
})
// Add custom headers
// 验签 start
let timestamp = (new Date()).valueOf();
let AppId = 'axgyApi';
let Sign_AES_KEY = 'zWNjxzko2h2GbmFaRHxs';
let language = 'ZH_SIMP';
let ak = md5(AppId + Sign_AES_KEY + timestamp);
let authParams = {
//公共参数
// "categoryType": "SaleGoodsType@sim",
// "streamNo": "wxapp153570682909641893",
// "reqSource": "MALL_H5",
// "appid": "string",
// "timestamp": new Date().getTime(),
"sign": "string"
};
config.body = {
...authParams
}
return config;
})
封装的方法
//index.js
let queryDonateProjectDetail = function (seq_uuid){
return fly.get("xxx", { seq_uuid});
}
let api = {
queryDonateProjectDetail
}
export default api;
调用的地方
test:function(){
var that = this;
Api.queryDonateProjectDetail("6588f561-6321-470a-ad28-af00062a2b6d").then(res => {
console.log(res.data)
})
}
调用结果
发现我想要的参数并没有拼接到地址后面(get请求)
也是尝试啦各种办法,最哦吼得出结论是因为config.js里面设置config.body 的时候造成了覆盖,导致了参数传不进去,最后进行了修改
let body = { ...authParams,...config.body};
config.body = body;
//这里是把之前的body和现在想要穿进去的整合而不是覆盖掉
然后就愉快的解决啦