Android kitkat跨域ajax失败

时间:2014-03-10 17:16:25

标签: android jquery ajax webview cross-domain

我有一个Android应用程序,可以从assets文件夹中将html文件加载到WebView中。然后,该文件中的Javascript尝试进行Ajax调用,以从远程服务器检索数据。尝试在4.1设备上成功,但在4.4设备上失败。

活动的onCreate中的相关代码:

mWebView = (WebView)findViewById(R.id.webView);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setAllowUniversalAccessFromFileURLs(true);
mWebView.loadUrl("file:///android_asset/test.html");

在test.html的head元素中(不包含其他javascript):

<script type="text/javascript" src="js/zepto.min.js"></script>
<script type="text/javascript" >
    $(document).ready( function()
    {
        var url = 'http://google.com';
        $.ajax(
        {
        type: 'GET', 
        url: url, 
        success: function(dataAsText) 
        {
            $('#report').html("Success");
        },
        error: function( xhr, type)
        {
            $('#report').html("Error");
        });
    });     
</script>

- 我在4.2上取得成功,在4.4上出现错误。

根据文档,webSettings.setAllowUniversalAccessFromFileURLs(true);应该启用跨域调用。

我正在使用zepto;我尝试使用jquery而且发生了同样的事情。

据我所知,KitKat中的WebView发生了重大变化。是否还有其他一些与安全相关的设置?

提前感谢您的帮助。

0 个答案:

没有答案