V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lshero
V2EX  ›  问与答

HTTPS AJAX 提交表单有没有什么正确的姿势?

  •  
  •   lshero · 2015-06-08 15:56:18 +08:00 · 2571 次点击
    这是一个创建于 3457 天前的主题,其中的信息可能已经有所发展或是发生改变。
    由于要求所有的登录都要走HTTPS,PM死作死作的不用统一登陆并且又要自己做一个AJAX登陆,所以就产生了一堆问题。

    比如HTTPS下写的Cookie HTTP下无法读取,还好公司的帐户体系有单点登陆的登陆串,HTTPS下获取到了单点登陆串之后传给HTTP算是解决问题。

    由于只有线上有HTTPS环境上线后发现貌似也就Chrome 可以直接在HTTP上解析HTTPS返回的JSON 前提还是添加了Access-Control-Allow-Origin 的Header头

    IE之类的浏览器似乎不能在HTTP下直接用jQuery向HTTPS域发送AJAX请求,所以最后想到了用iFrame来实现。但是最后上线使用各种浏览器调试似乎都没有通过。
    给出提示The frame requesting access has a protocol of "http", the frame being accessed has a protocol of "https". Protocols must match.
    所以我想问一下 HTTP给HTTPS 提交表单有没有什么正确的姿势?
    7 条回复    2015-06-17 21:19:58 +08:00
    lshero
        1
    lshero  
    OP
       2015-06-08 16:13:18 +08:00   ❤️ 1
    脑子短路了 直接用jsonp不就好了.....
    pubby
        2
    pubby  
       2015-06-08 16:29:04 +08:00
    jsonp 那是 GET
    lshero
        3
    lshero  
    OP
       2015-06-08 16:37:38 +08:00
    @pubby 反正提交到HTTPS上get不get也无所谓啦,要是去折腾iframe估计更悲催
    maxsec
        4
    maxsec  
       2015-06-08 18:51:07 +08:00
    <form action="https://xxxx" method="POST">
    </form>
    这样不行吗
    m939594960
        5
    m939594960  
       2015-06-09 00:38:58 +08:00 via Android
    用form target到iframe能不能行呢
    lshero
        6
    lshero  
    OP
       2015-06-09 01:01:38 +08:00
    @m939594960 http没啥问题https弄得很折腾没有再弄了
    wangxiao2015
        7
    wangxiao2015  
       2015-06-17 21:19:58 +08:00
    首先你要了解为什么会出现这些问题,还有要了解改成 https 的必要性。

    为什么出现这些问题?主要是因为浏览器的安全性设计,浏览器安全是基于域的,所以不同域就会产生跨域问题。比如 https://www.baidu.comhttp://www.baidu.com 就是不同的域,也就会跨域。这也就是为什么在 response header 中加上 Access-Control-Allow-Origin 就会正常的原因。

    改成 https 是否必要?是的,千万别用什么 jsonp 之类的过时垃圾技术(jsonp 写出来的接口还不兼容其他端,需要做 hack)。互联网最初设计的人员都是善良的,所以没有过多的考虑安全性,http 是非常容易被伪造和被监听的,https 可以一定程度上保证安全性(中间人攻击除外),而且目前的一个趋势是全站 https 化,包括 WebSocket 要走 wss 协议。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6009 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:07 · PVG 10:07 · LAX 18:07 · JFK 21:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.