wx.request中的redirect设置为“manual”后有时有效,有时无效
[图片] [图片] 此时客户端302重定向拦截成功。 [图片] 但是下一次拦截就不成功了。 [图片] [图片] 我们显然发现,这个重定向请求没有在客户端拦截,而是自动发送给了服务器,但是没带上保持登陆状态的cookie,所以404。 下面是发现该错误的代码片段: function get_redirect_location_from_jwgl(url, header, postData){
return new Promise((resolve) => {
wx.request({
url,
method: 'POST',
data: postData,
timeout: 20000,
header,
redirect: 'manual',
}).onHeadersReceived((backmsg) => {
// 获取backmsg
return resolve(backmsg.header.Location)
})
})
}
async function Get_Redirect_Location(url, header, postData) {
const redirect_location = await get_redirect_location_from_jwgl(url, header, postData)
return redirect_location
}
function get_new_jsessionid(url, header){
return new Promise((resolve) => {
wx.request({
url,
method: 'GET',
timeout: 20000,
header,
redirect: 'manual'
}).onHeadersReceived((res) => {
return resolve(res.cookies)
})
})
}
async function Get_New_JSESSIONID(url, header){
const new_jsessionid = await get_new_jsessionid(url, header)
return new_jsessionid
}
export function submit_form(url, header, postData, TOKEN) {
// 提交表单,获取最新JSESSIONID
Get_Redirect_Location(url, header, postData).then((Redirection) => {
Get_New_JSESSIONID(Redirection, header).then((res) =>{
console.log(res)
})
})
我已经排除了可能由于函数嵌套产生该问题,就算把Get_New_JSESSIONID函数拿出来,也没办法解决这个问题。