設(shè)備升級(jí)參考網(wǎng)上教程,有兩個(gè)方案,建議后者: http://iphone.265g.com/faq/170567.html
一瞻惋、 問題根源
在iOS12 Beta1中WKWebView跨域預(yù)檢請(qǐng)求(OPTIONS)沒能發(fā)出儡首,導(dǎo)致真實(shí)請(qǐng)求沒發(fā)出渣玲。
二蔑鹦、 問題解釋
- OPTIONS請(qǐng)求何時(shí)發(fā)送夺克?
對(duì)于我們的App場(chǎng)景,在發(fā)送跨域的HTTP(s)動(dòng)態(tài)請(qǐng)求之前嚎朽,如果是復(fù)雜請(qǐng)求铺纽,默認(rèn)都會(huì)先發(fā)OPTIONS,再發(fā)送POST哟忍。 - 哪些情況為復(fù)雜請(qǐng)求狡门?
a. 帶了cookie,
b. 帶了自定義header字段的锅很,
c. content-type為applicaiton/json, application/xml, 靜態(tài)類型的content-type不會(huì)發(fā)送options請(qǐng)求
d. 其它待補(bǔ)充的
三其馏、目前的解決方法
1\. 降級(jí)到UIWebView(推薦方案)
2\. 頁面的SOA服務(wù)通過Native轉(zhuǎn)發(fā),走TCP通道爆安,這樣就不會(huì)有options請(qǐng)求叛复。
3.修改HTTP header,轉(zhuǎn)成簡(jiǎn)單請(qǐng)求扔仓,避免CORS的預(yù)檢請(qǐng)求褐奥,這種方案可行,但是開發(fā)測(cè)試成本較高翘簇。
如: soa服務(wù)使用.json結(jié)尾,省去請(qǐng)求頭Content-Type:application/json
cors_fail.png
cors_suc.png