request请求头中出现Provisional headers are shown的解决过程
一.异常现象
壹哥在利用微服务构建sso单点登录的时候,写了一个login接口,然后就在浏览器中进行测试,结果发出请求后发现,浏览器中产生了如下提示信息,表示根本就无法访问到服务器,而服务器内部也没有收到任何请求!
这个问题字面意思是“显示了临时报文头”,浏览器第一次发送这个请求,请求被阻塞,未收到响应。当要求浏览器再次发送这个请求时,上个同样的请求都还没有收到响应,浏览器就会报这个警告。
所以这说明我的request请求根本没有发出去,更没有被送到服务器内部,当然也产生不了任何响应!但是request请求头中包含’Provisional headers are shown‘这样的提示信息,这是为什么呢?
二.异常原因
原因1:
网上查找资料,发现有的是因为Chrome浏览器的问题,在谷歌浏览器中出现Provisional headers are shown的警告,而换了其他的浏览器打开就正常了。说是谷歌的插件拦截导致的,由于我自己的谷歌浏览器安装了Postman和cross-request(Yapi请求运行所需),于是我换了一台没有插件的谷歌浏览器,发现一切正常,这种头部的异常可以不用处理,因为请求数据都是可以正常返回的。
但是我的问题不是这个!
原因2:
后端服务器Controller的接口地址上没有添加 @ResponseBody注解,导致接口未对外输出响应信息,也就意味着该接口不存在;
我的问题也不是这个!
原因3:
https协议导致,可惜我的也不是!
原因4:
跨域请求被浏览器拦截:现在网站的静态资源都会存在专门的静态域名下面,和实际访问的域名可能不一致。这种情况基本发生在ajax请求,都是基于CORS来解决这个问题。
原因5:
服务器未及时响应,也就是服务器超时了,这种特定情况下才会出现,跟服务器关联不大。
原因6:
请求的数据采用了缓存,并没有发送请求。只从缓存中获得的通信显示为“显示临时标题”(或“执行”),因为该文件是从缓存中获取的,并且未进行通信,所以并不会显示详细标头。
原因7:
自己的url接口地址写错了。。。。无语凝噎。。。。。。注意,只要url写错,基本都会导致该问题,请仔细检查自己的url地址,不要放过任何一个字母和符号哦!
我的就是最后一个原因,粗心大意,把服务器地址localhost写成了’localhsot‘,真是欲哭无泪啊!
三.解决办法
我就是因为把url接口地址写错了,粗心大意惹的祸,所以呢,就把地址写对了就好了!