这几天在写代码遇到一些莫名奇妙的bug,在这里记录一下。

1.Cookie设置不了问题

        我写的设置Cookie接口,在本地postman调用时是正常的,但是前端调用时就是写不进Cookies里面。在网上也看了很多博文,都试过没啥用。

        最后怎么解决的?我把@GetMapping,换成了@PostMapping...笑死,根本笑不死。

 

2.Cookie的配置

// 新建一个Cookie对象

Cookie cookie = new Cookie(cookieName, encodeCookieValue);

// 设置cookie的生存时间

cookie.setMaxAge(cookieConfig.getMaxAge());

// 通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容

cookie.setHttpOnly(true);

// 只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证

cookie.setSecure(true);

// 可以在webapp文件夹下的所有应用共享cookie

cookie.setPath("/");

// 跨域共享cookie

cookie.setDomain(".baidu.com");

 

3.前端调用接口不携带Cookie问题

        前端调用我的接口没成功,F12看对应接口Headers下的Request-Header下的Cookie居然没有值。。。这个问题我也是找了半天,后来发现前端忘加跨域设置。

:with-credentials="true"

 

4.前端数据不回显,国内站点正常回显,但是海外站点不回显。。。

        这个问题找了我一天,线上的问题非常难定位,我后端接口返回了数据,但是前端就是拿不到,我看了前端的逻辑没有错。问题出在哪呢?TTFB!

        既然不是后端数据返回的问题,那就是前端或者其他的问题。我对比了国内站点和海外站点的接口调用顺序,发现了国内站点有A接口总是调用在B接口之前,B接口需要查询的是A接口的返回的值。所以顺序是正确的。但是海外站点,可能是数据库连接问题,A接口的TTFB时间长,而B接口有兜底逻辑。导致海外站点B接口先于A接口调用。一直走兜底逻辑,数据回显就不正常了。

        怎么解决?前端写一个监视器,当A接口有数据了再调用B接口。。。

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: