一、问题产生
项目里的app用了混合开发,JS和Native页面交互(这专题在下一篇章再总(chao)结(xi)出来)。原先iOS里用的是UIWebView,但由于性能差,表现反而不如Android机器(Android里的浏览器内核都是WKWebView),所以打算也换成WKWebView。但UIWebView与JS交互的方法 和WKWebView不一样,服务端的JS代码也要改。
用
1
wget -r -p-np -k www.abc.com
来抓取整个网页到本地服务器,打开网页在chrome的控制台看到有个错误,如下:
1
No 'Access-Control-Allow-Origin' headerispresentontherequested resource.
联想到以前同事提过的跨域问题,隐约觉得是同一个问题。经查,有以下解决方案。
二、问题解决
解决问题有2要素,浏览器和服务器都要支持。
1、浏览器支持情况:
2、服务器设置:
由于我也不懂服务器配置,所以,扔个链接给你,你自己体会。
http://enable-cors.org/server.html
三、后记备注:
大家在测试时服务器的链接可以用这个,
https://fonts.googleapis.com/css?family=Inconsolata&text=Hello
这网站是开启CORS的。
references:
https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS