今天花了我一下午的时间,能气死
后台的路由拦截思路是,请求token的请求放行,其他的请求全部验证一遍token,headers里面的token正确才让过,本来是很正常的,
但是我有个请求用户名的post请求一直被卡着,我到处找原因,我把卡主的请求全部console出来,发现req.headers里面没有token,我纳闷了,去看axios的拦截器,找了半天没找出原因,axios拦截器console出来的数据都含有token 的
怎么会?这数据还能被浏览器吃了不成,怎么到后台数据就不见了?
关键是,还是有区别的吃,后台console出来请求token的请求headers里面是有token的
到了请求用户名的请求就不见了?
remenberW.all('*',(req,res,next) => {
if(req._parsedUrl.pathname === '/gettoken'){console.log(req.headers);next()}
else{
let token = fs.readFileSync('../data/remenberW/user.json')
token = md5(JSON.parse(token.toString()).token)
if(token === req.headers.token)next()
else {
console.log('2',req.headers)
console.log('dang')
return}
}
// console.log(req.url,req.headers)
// next()
})
直到我连req.method一起输出,发现拦截下来的是option,我吐了,我也明白了,敲,忘记跨域两请求这茬了
axios拦截器对于option请求没有任何作用的,因为它是浏览器自己发出的。