java - JSONP、Java Servlet 和 Internet Explorer

标签 java jquery internet-explorer servlets jsonp

我在与网站所在的服务器不同的服务器上使用 JSONP 应答 AJAX 调用。它工作得很好,除了在 IE 上,我无法保持 session 。

响应请求的站点使用 Java Servlet。它适用于 Firefox,但我在 IE 中遇到问题,因为它不接受 cookie。 (我可以通过更改安全设置使其工作。)

从那里我尝试将 sessionid 放在请求的 url 中:

listAction: server+'/site/gateway.jsp?current=page&next=something&jsessionid='+session+'&callback=?'

(我写 callback=? 是因为我使用的是 jQuery,这就是你可以做 Jsonp 的方式。)

还是不行。我写错了 session 吗?它还在看我的 cookies 吗?我可以配置我的 servlet 以加载我希望它加载的 session 吗?

最佳答案

这实际上与 iFrame 遇到的问题相同。您需要设置一个 p3p header 。

request.setheader('P3P: CP="NOI ADM DEV COM NAV OUR STP"');

为什么 IE 会阻止您将 cookie 与 JSONP 一起使用,但如果您只添加一些 header 则允许您使用?谁知道。 header 代表隐私政策。而且我猜他们认为恶意黑客不会对他们的隐私政策不诚实。

如果您出售有关您用户的信息或有其他原因担心您的用户提起诉讼,您应该确保您的 p3p header 准确反射(reflect)您的隐私政策,因此您需要做更多的研究。

这是同一个问题,但关于 iFrame:Cookie blocked/not saved in IFRAME in Internet Explorer

关于java - JSONP、Java Servlet 和 Internet Explorer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8364037/

相关文章:

asp.net - <div> 元素在 <ul> 元素内,层次结构在 IE、ASP.NET Repeater 控件中发生变化

css - IE11伪元素内联在文本之后

java - 带有 Selenium Java 的剑道组合框

java - JSP 中的表单 - 在每个帖子旁边添加日期

javascript - 禁用负责任设计中的元素

javascript - 为什么 jQuery Datepicker 在输入数字并按下回车键时选择今天的日期?

javascript - 使用 IE 在 Angular 模板中设置 HTML 样式时出现问题

java - 将图像插入数据库

java - 如何在 servlet jsp 中实现生产就绪的登录注销功能

javascript - 无法附加图像