use*_*465 6 ajax rest session jquery xmlhttprequest
如何编写jquery ajax()调用(例如xmlhttprequest)来保存会话ID(例如,在浏览器的cookie中发送'jsessionID'cookie)
我们的背景:
为什么选择新会议?
原因是:XmlHttpRequest不会将任何cookie传递给应用程序B. Servlet容器在cookie中设置jsessionid.服务器没有获得jsessionid
相反,JSONP调用(动态生成<script src ="http://server/b/page.x">)会传递cookie.
问题
Web会话,状态和身份验证
我知道REST应该是无状态的,重新使用Web会话似乎有些脆弱(即与使用OAuth和身份验证令牌相反,netflix也是如此)
这是第一次迭代,我们接近让事情"正常运行".这适用于JSONP,但XmlHttpRequest发布失败.
提前致谢
更新:
确实是一个天真的问题.
事实证明,通过xmlhttprequest/ajax进行跨站点发布具有固有的安全问题和解决方法.例如,Firefox除非添加特殊标头,否则不会使用XmlHttpRequest传递cookie.然后,Firefox将对服务器进行"飞行前检查"(即http OPTIONS调用)以查看"这样可以吗?".您的服务器需要回答"OPTIONS"调用,说"是的没关系",之后firefox将执行您的"使用Cookie发布".
IE和Firefox以不同的方式解决这些问题(即有点像javascript大约1998年).我不知道IE会做什么,但是经历了1998年,我们不想真的走这条路,如果可能的话.
我们编写了一个解决方法.
当我们开始编码时,我们的团队都不知道这一点.(即"jsonp在原型中工作得很好;其他一切也应该")
参考资料:Mozilla如何解决此问题(http标头和预检检查) https://developer.mozilla.org/En/HTTP_access_control
跨源资源共享:http: //en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing