GAE 会话在来自 JavaScript 的 POST 请求后消失

GAE sessions disappearing after POST request from JavaScript

本文关键字:POST 请求 消失 JavaScript 会话 GAE      更新时间:2023-09-26

我有一个使用会话来存储内容的 GAE 应用程序。有一个 Android 应用程序可以使用它,发送请求,GAE 在响应时使用会话。现在我正在尝试制作一个与Android相同的JavaScript客户端。它使用 XMLHttpRequest 将 Ajax 请求(启用 CORS)发送到 GAE 应用程序。第一个请求通过正常,但是第二个请求 - 它需要从ession中检索对象 - 在尝试从会话读取时崩溃并出现NullPointerException。

这两个请求由同一页面发送,一个在加载时发送,另一个在用户单击按钮时发送。

有人知道出了什么问题吗?

问题是,由于这是一个跨域的Ajax请求,因此没有保存带有会话ID的cookie。要允许这种情况发生(至少在 Chrome 中),请求需要将 withCredentials 设置为 true。这意味着在服务器端,访问控制不允许通配符,并且必须将访问控制设置为允许凭据。