小程序
小游戏
企业微信
微信支付
扫描小程序码分享
安卓微信7.0.7的header传下划线参数接收异常,nginx已配置underscores_in_headers on,还是无效。7.0.6正常,微信的IOS
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你好,不建议这么用。
下划线在 HTTP Header 里是非法字符串
因为历史约定导致 HTTP Request Header 的名字不允许包含下划线 _ 字符,否则(大多数)服务端程序会判断这个 Header 不合法。 比如 Nginx 如果没有开启 underscores_in_headers on; 配置,在转发请求的过程中就会丢弃不合法的 Header。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
设置header的值
axios.interceptors.request.use(
config => {
// console.log(config)
let chis_token = localStorage.getItem(
'chis_token'
);
if
(chis_token) {
config.headers.common[
'CHIS_TOKEN'
] = chis_token;
}
intercep(config)
(config.baseURL == URL.health_sys || config.baseURL == URL.health) {
(config.data) {
config.data = Util.encrypt(config.data)
else
{
(config.method ==
'get'
&& config.params) {
let str =
''
for
(let item
in
config.params) {
str += item +
'='
+ config.params[item] +
'&'
str = str.substring(0, str.length - 1)
config.params = {
data: Util.encrypt(str)
return
config;
},
error => {
Promise.reject(error);
调用接口
_checkSign(param) {
checkSign(param).then(res => {
console.log(res)
})
后台java获取
String CHIS_TOKEN = request.getHeader(
"CHIS_TOKEN"
当安卓微信7.0.7调用时,CHIS_TOKEN获取为空,其他版本正常,微信IOS也正常
麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
已回复,详见代码,谢谢!
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
你好,不建议这么用。
下划线在 HTTP Header 里是非法字符串
因为历史约定导致 HTTP Request Header 的名字不允许包含下划线 _ 字符,否则(大多数)服务端程序会判断这个 Header 不合法。 比如 Nginx 如果没有开启 underscores_in_headers on; 配置,在转发请求的过程中就会丢弃不合法的 Header。
设置header的值
axios.interceptors.request.use(
config => {
// console.log(config)
let chis_token = localStorage.getItem(
'chis_token'
);
if
(chis_token) {
config.headers.common[
'CHIS_TOKEN'
] = chis_token;
}
intercep(config)
if
(config.baseURL == URL.health_sys || config.baseURL == URL.health) {
if
(config.data) {
config.data = Util.encrypt(config.data)
}
else
{
if
(config.method ==
'get'
&& config.params) {
let str =
''
for
(let item
in
config.params) {
str += item +
'='
+ config.params[item] +
'&'
}
str = str.substring(0, str.length - 1)
config.params = {
data: Util.encrypt(str)
}
}
}
}
return
config;
},
error => {
return
Promise.reject(error);
}
);
调用接口
_checkSign(param) {
checkSign(param).then(res => {
console.log(res)
})
},
后台java获取
String CHIS_TOKEN = request.getHeader(
"CHIS_TOKEN"
);
当安卓微信7.0.7调用时,CHIS_TOKEN获取为空,其他版本正常,微信IOS也正常
麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
已回复,详见代码,谢谢!