Android WebView不能加载ajax?加载ajax无效?

!苹果或高版本的安卓webview可能会有跨域被拦截的问题,需要在服务端允许跨域。 另外高版本的webview注意使用HTTPS协议的请求,普通http将会被拦截 php示例代码:

header('content-type:application:json;charset=utf8');
header('Access-Control-Allow-Origin:*'); // 被允许的访问来源
header('Access-Control-Allow-Methods:POST');
header('Access-Control-Allow-Headers:x-requested-with,content-type');

1、WebView的支持js是否打开; webSettings.setJavaScriptEnabled(true);

2、webView拓展的api是否打开: webSettings.setDomStorageEnabled(true);

3、在高版本的时候我们是需要使用允许访问文件的urls: webView.getSettings().setAllowFileAccessFromFileURLs(true);

4、我们在加载页面的时候,如果使用的是WebView.loadDataWithBaseUrl(baseUrl,str,mime,scode,historyUrl)这个加载数据的时候;

这里我们是需要查看一下前端的ajax请求数据的时候,是否使用的是相对路径(这里非常重要),如果是的话,我们的baseUrl,我们是需要写上我们的主机名的,否则ajax是不会执行的;

5、如果上面的方法还是不行的话,我们可以将webView的缓存给禁用,再来试一下; (不推荐) webView.setCacheEnable(false);

6 ? 模拟标签点击的效果(亲测无效)

参考链接:

Android WebView不能加载ajax?加载ajax无效?

文章地址:




标签: webview, ajax, allowed-origin

添加新评论