讨厌的https,cookie传递烦死了!

今天有一个特殊的需求,涉及到金融方面的必需上https看起来比较高大上。但是网页因为很多原因只能上个http。于是呢?坑开始……网页有2个方案,一个是ajax载入https的内容,通过http头的Access-Control-Allow-Origin实现跨域指定,另一个是套一个iframe完成。想让网页源代码看起来高大上的我选择了前者,代码量多一些,但是比较有成就感。

先去查查可行度怎样,google到一篇问答http://stackoverflow.com/questions/2163828/reading-cookies-via-https-that-were-set-using-http。看起来我只要不去动Secure就可以了,开工……

于是乎花了一个多小时也没搞定,反复排查path/domain没有错,成功response了所需的cookie,但是浏览器在POST表单的时候打死也不带上这个cookie!这他喵的是怎么回事啊(╯‵□′)╯︵┻━┻

总之我滚去用第二个方案了……iframe就iframe吧……然后我发现iframe自适应高度又是个问题,又回到方案一上。

在Ovear菊苣的提醒下,才想起来php可以用GET传递session。同时卜卜口给了一段js代码用来读写cookie超赞:

得到cookie里的SESSION ID之后,在提交表单的时候把这个ID用GET带到表单里,php就能认cookie了~

讨厌的https,cookie传递烦死了! 有 8 个评论

  1. 1. XHR 中设置 withCredentials = true 以携带 cookies 信息
    2. header 中设置 Access-Control-Allow-Credentials: true
    3. header 中的 Access-Control-Allow-Origin 不能使用泛域名 *

    满足以上条件即可在发送请求时携带原域的 cookies

发表评论

电子邮件地址不会被公开。 必填项已用*标注