ionic ajax 跨域,关于新版IONIC3 WKWebView 出现跨域请求的问题

单独把这个问题拿出来写一篇文章,是因为在一些ionic开发群里看到好多朋友都在问,有的花了一天的时间都没有解决;甚至看到有人发布悬赏来解决此问题;博主可以说是最早经历这个坑的(博主当时也是花了一下午的时间呢,各种查资料)

iOS打包在模拟器中运行,在控制台会看到网络请求后的结果:

{"_body":{"isTrusted":true},"status":200,"statusText":"Ok","headers":{},"type":3,"url":null}"

这是因为IONIC3打包iOS时后使用了高性能WebView组建WKWebView,做iOS开发的同学应该都很熟悉了。

之前看到过资料,有同学测试过WKWebView占用的资源是UIWebView占用的资源的1/40左右,所以IONIC也将默认构建iOS应用的引擎改成了WKWebView。

另外官方对新版IONIC3使用WKWebView的解释

在iOS中,现在有两个网页浏览器,UIWebView和WKWebView。之前的IONIC版本使用的都是UIWebView。现在都将使用WKWebView。

我们坚信WKWebview是任何应用程序的最佳选择,因为它比旧版的webview(UIWebView)有许多改进。这些功能包括:

将JS代码JIT转换为机器代码,运行速度更快

改进的渲染性能

更少的内存消耗

更好地遵守网络标准

可靠的滚动事件(对虚拟列表很重要)

好了不扯了,时间宝贵,这篇文章也是抽空写的。

解决方案

1.在后台接口配置允许跨域请求

这个需要后端开发工程师进行配置(java,.net,php,nodejs等网上都有相关资料)

2.强制cordova使用UIWebView引擎渲染页面

(1)在config.xml里增加以下配置

(2)卸载WKWebView插件

$ ionic cordova plugin remove cordova cordova-plugin-ionic-webview --save

$ rm -rf platforms/

$ rm -rf plugins/

$ ionic cordova build ios

目前我了解到的有以上两种方案,如有其他解决方案,欢迎在文章下方留言分享。

参考资料:https://ionicframework.com/docs/wkwebview/

关注微信订阅号:IonicBlog,可获取最新Ionic资讯和技术博客。

IonicBlogQR.jpg

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值