本地网站转Android应用遇CORS拦截问题及解决方案
本地Web站打包Android App的CORS问题解决
我将自己用XAMPP搭建的个人本地网站,放入Android Studio的assets文件夹中,通过WebView打包成Android应用后,应用能正常启动并加载页面,但JS中用fetch获取JSON数据的请求被CORS策略拦截。
最初以为WebView无需额外配置,先后尝试了fetch、XMLHttpRequest,甚至AssetManager都没有效果。页面的功能逻辑是:加载时调用loadQuestions()传入JSON文件名以显示初始问题;点击侧边按钮(示例代码:<button onclick="loadQuestions('questions2.json');">Questions 2</button>),传入不同JSON文件名即可加载新问题。
已验证的解决办法
在MainActivity中添加WebView配置代码,开启文件URL的全局访问权限:
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
注意:该设置存在安全风险,仅适合个人自用场景。
内容的提问来源于stack exchange,提问作者Jason Leverton
相关产品推荐
相关产品推荐

