加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax post 请求 报错 caution : provisional headers are shown

发布时间:2020-12-16 02:04:55 所属栏目:百科 来源:网络整理
导读:今天dmap更新部署后,在qa的jpaas测试环境出现如下问题: 执行批量删除任务时: 浏览器 没收到任何返回。 直接就悲催了。 但实际上 从业务和数据库来看,后台 是执行了,而且执行 成功了。 后台打印的日志 一切正常。 在qa测试环境可以复现,但偶尔也不会出


今天dmap更新部署后,在qa的jpaas测试环境出现如下问题:

执行批量删除任务时:


浏览器 没收到任何返回。 直接就悲催了。

但实际上 从业务和数据库来看,后台 是执行了,而且执行 成功了。 后台打印的日志 一切正常。



在qa测试环境可以复现,但偶尔也不会出现。 本地开发环境无法复现。


联系OP排查 tomcat日志 等一系列,从tomcat日志看 ,后台tomcat 访问日志 的确是HTTP 200 成功。

故可以判定后台 收到请求,并且成功处理,返回给前面了。


一筹莫展之际,考虑到是否可以用 rest client 模拟http请求,看下后台服务到底是否正常。

最后在qq群里请教其他前端人员。 有位同学 google 一下 “provisional headers are shown”,找到如下网页“ http://stackoverflow.com/questions/21177387/caution-provisional-headers-are-shown-in-chrome-debugger”


故怀疑是 前端 在 ajax返回前 就刷新了页面 或者 跳转到 其他页面去了。

这一下启发了我,因为这次 上线,前端fe 的确做了更改。

故我开始排查 js代码问题,发现了ajax 他设置了 timeout属性 为10s。

至此 真相大白,就是 因为这个 请求后台处理比较耗时,ajax在等待 10s 发现 后台 还未返回,就自动断开了连接。

故出现奇怪问题。



解决办法:

方法1 : 将ajax请求改成 同步。

方法2: 去掉 timeout属性的设置。


思考: 有时考虑问题 不能局限于 常规场景,要发散。 可能你以为 不可能出现问题的 地方 就在哪儿。 真有可能 是其他人挖的坑~

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读