设置登录MacOSX WebView 对 iframe 设置cookie 有可能失败

时间紧张,先记一笔,后续优化与完善。

    在应用 WebView 实现用户登录,结果死活登录不成功,Safari 则完全没问题,对此表现很无法,开始疑惑是否WebView 哪里设置的问题,但没找到依据。还好友人提醒抓包尝尝,由于Mac 下没有找到Fiddler ,于是实验应用 CharlesProxy 结果适用版非常恼人,而且开vpn 可能就什么都抓不到。还好有个Wireshark 有Mac 版本的,虽然开始不会用,但是之后发现功能的确很壮大。

    经过抓包最后发现虽然发的请求同应用Safari 基本相同,但是其中少了cookie,渐渐磨下去发现由于自己的登录页实际上是在本地页面的 iframe 中。接着找到如果 iframe src 相对main frame url 不是相同的domain 可能被认为是 third-part cookies,因此在接收登录页面的时候cookie 就有可能没权限设置或在请求时没有不发送cookie。最后通过设置cookie 的信任级别处理了问题。

    每日一道理
当浮华给予我们过多欺骗,现实中的虚假几乎让我们忘却了真的存在,是真情唤回了迷离的心,是真情带给了我们最纯、最真的感觉,它流露的是美的誓言,渗透的是永恒执著的真爱。
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy: NSHTTPCookieAcceptPolicyAlways];

    虽说这处理了问题,但一个这种方式也有些无法,因为文档提到这会影响到全部应用程序对cookie处理方式 ,感觉有更好的方式,仍需要继续寻觅。

    参考:

    http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSHTTPCookieStorage_Class/Reference/Reference.html

文章结束给大家分享下程序员的一些笑话语录: 据说有一位软件工程师,一位硬件工程师和一位项目经理同坐车参加研讨会。不幸在从盘山公路下山时坏在半路上了。于是两位工程师和一位经理就如何修车的问题展开了讨论。
硬件工程师说:“我可以用随身携带的瑞士军刀把车坏的部分拆下来,找出原因,排除故障。”
项目经理说:“根据经营管理学,应该召开会议,根据问题现状写出需求报告,制订计划,编写日程安排,逐步逼近,alpha测试,beta1测试和beta2测试解决问题。”
软件工程说:“咱们还是应该把车推回山顶再开下来,看看问题是否重复发生。”

--------------------------------- 原创文章 By
设置和登录
---------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值