转:关于provisional headers are shown问题

今天在工作中发现的问题,不扯闲话
原本的HTML页面中有2个按钮:
一个是input(submit),提交全部页面内容到接口,通过返回数据验证后完成。

   


     
     
   

一个事button(ajax),提交头像用的,用来一键替换头像。

   


     
     
{:__('Click to edit')}

     
   

框架使用fastadmin(thinkphp5.0)
原本就是复制粘贴的页面(个人比较懒,hhhhhh...)
在原本的页面上提交稳稳的(嘛,复制粘贴fastadmin演示的,公司的代码就不放了...)

但是在新创建的页面上就会出现类似于这样的问题。

provisional headers are shown=>显示临时标头
大概的意思就是:没有请求头数据,也没有响应头数据,也就是这个请求根本就没有被发送
导致会出现页面提示

我那个囧啊,看的头都大了。。。蛋疼的要死,一项项查。
这个错误的官方解释是:“浏览器第一次发送这个请求,请求被阻塞,未收到响应。当要求浏览器再次发送这个请求时,上个同样的请求都还没有收到响应,浏览器就会报这个警告。”那么问题会在哪里呢。
无奈上网搜索问题答案,找了N个回答都不尽人意。。。。蛋疼的要死(本来一个小问题,就这么拖了好一阵子...)
想了半天也没想到个啥,重新看回这句“载入缓存资源,请求没有被发送, 而如果上一个资源加载失败,可能导致从缓存加载的资源失败”。
那么,反过来想“那么,我在这里重新要求载入怎么样,让两个按钮全部有效。”
于是,代码就变成了:

   


     
     
{:__('Click to edit')}

     
   

讲真,没啥变动,就在button里加了个type,让这玩意变成单纯的按钮。结果。。。。MD成了= =#
原因:button标签默认的type属性是 submit,这就有解了,因为这玩意也是提交了= =#(默认的不一定都是好东西,太方便了也不好),这里提交了一次,在页面加载途中的时候发送请求,= =#肯定会出错的= =#(参数不能为空,加了一半,甚至不到一半...)。
报错也就避免不了了。
至此总算搞定了这个问题,
'provisional headers are shown'=>'载入缓存资源,请求没有被发送, 而如果上一个资源加载失败,可能导致从缓存加载的资源失败'
反过来讲就是:'即缓存资源请求之前的请求不能失败,不然就有可能出现问题!'
提交时只提交部分内容,即获取内容不全,value值为空或null,报错。
提交时只提交部分内容,提交的内容就是这部分内容,value不为空,不报错。

What you have is not necessarily what you need.
适合就好

你可能感兴趣的:(转:关于provisional headers are shown问题)