美文网首页Webview
iOS12 Beta 1 WKWebView CORS 解决方案

iOS12 Beta 1 WKWebView CORS 解决方案

作者: SkyTrip | 来源:发表于2018-06-20 09:54 被阅读127次

    设备升级参考网上教程,有两个方案,建议后者: http://iphone.265g.com/faq/170567.html

    一、 问题根源

    在iOS12 Beta1中WKWebView跨域预检请求(OPTIONS)没能发出,导致真实请求没发出。

    二、 问题解释

    1. OPTIONS请求何时发送?
      对于我们的App场景,在发送跨域的HTTP(s)动态请求之前,如果是复杂请求,默认都会先发OPTIONS,再发送POST。
    2. 哪些情况为复杂请求?
      a. 带了cookie,
      b. 带了自定义header字段的,
      c. content-type为applicaiton/json, application/xml, 静态类型的content-type不会发送options请求
      d. 其它待补充的

    三、目前的解决方法

      1\. 降级到UIWebView(推荐方案)
    
     2\. 页面的SOA服务通过Native转发,走TCP通道,这样就不会有options请求。
    
     3.修改HTTP header,转成简单请求,避免CORS的预检请求,这种方案可行,但是开发测试成本较高。
    
            如: soa服务使用.json结尾,省去请求头Content-Type:application/json
    
    cors_fail.png cors_suc.png

    相关文章

      网友评论

        本文标题:iOS12 Beta 1 WKWebView CORS 解决方案

        本文链接:https://www.haomeiwen.com/subject/jsytyftx.html