网站迁移新的服务器以后,登录后台一直提示验证码不正确,几番排查、调试代码,最后发每次请求的 session_id 都不一样。

之前也遇到过类似问题,不过都是跨域请求引起的,这次都是在同一个域名下访问,从来没碰到过这种现象。

查看 cookie 发现「response header」中的 「Set-Cookie」被浏览器 blocked 了,后边有一个黄色的三角感叹号,提示 this set-cookie was blocked because it was not sent over a secure connection,cookie无法保存到浏览器。

原来是网站之前启用过 https,并且在当前浏览器用 https 打开过,现在迁移服务器后没有启用 https,直接使用 http 打开,所以 cookie 因为安全原因无法写入,清楚缓存、重启浏览器继续用 http 访问题解决了。