java - 在java中设置cookie,在javascript中读取

标签 java javascript cookies

我正在尝试类似的东西:Detect when browser receives file download

我正在使用 Chrome 开发人员工具来监视我的 cookie,我的问题是我在服务器端代码(在我的例子中是 java)中设置的 cookie 仅在请求中可见。当我检查 Chrome 开发工具中的“资源”选项卡时,情况并非如此。

我认为这可能与我的请求是通过构造一个隐藏表单并提交它来提交的(我使用的是 ExtJS 4.2.2)有关。

我在“资源”选项卡中只能看到来自 Tomcat 的 JSESSIONID cookie。

谁能帮我从 java 设置 cookie,以便在请求完成后我可以在 JavaScript 中读取这些 cookie?

截图:

enter image description here

enter image description here

最佳答案

有很多方法可以做到这一点,但这里有一种可以让您放弃 cookie 方法。出于安全原因,您确实应该将 cookie 设置为 HttpOnly,除非您有需要它的用例。

  1. 在某种 Iframe 中公开您的提交按钮,以便用户可以提交 文件仍保留在主页上。

  2. 检测 iFrame 中何时发生点击并开始轮询 AJAX 在某些 URL,例如“/FileUploadStatus”。

  3. 文件上传完成后在服务器端设置一个 session 属性如

    HttpSession session = request.getSession(false); session.setAttribute("fileUploadStatus",true);

  4. 当 AJAX 请求到达 /FileUploadStatus 处的 servlet 时,检查 session 变量以查看文件上传 servlet 是否已将 fileUploadStatus 的值更改为 true。如果是这样,则向客户端返回停止轮询和更新的指示 页面并清除服务器上的 session 属性。

注意:在各种浏览器中检测 iFrame 中的点击是一件很麻烦的事情。您可能必须在他们访问您的“上传页面”时开始轮询,然后等待。

替代解决方案:您还可以使用新的 WebSocket API 建立直接连接。这种方法运行速度最快,但并非所有浏览器都支持 websocket。

关于java - 在java中设置cookie,在javascript中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26094183/

相关文章:

java - Google 代码挑战赛——回文,未找到参数(int)

java - 在 Google map 方向中将字符串距离转换为双倍

java - 如何以编程方式打开我在 Android 应用程序中创建的文件夹?

javascript - SCEditor 插入符号位于 iframe 内容可编辑的末尾

javascript 网页打印。在每页的页眉中打印 Logo

cookies - WKWebView 中丢失 cookie

php - Yii2 - 错误请求 (#400) |前端和后端cookie

java - 重复 Java 数组

javascript - 从对象数组中删除除最后一个相似键之外的所有键

java - 如何以编程方式接受 cookie 的使用?