Android 4.1上的Access-Control-Allow-Origin错误

时间:2012-07-03 20:29:18

标签: javascript android xmlhttprequest cross-domain

我在Android 4.1上遇到Access-Control-Allow-Origin问题

在我的应用程序中,我有一些本地HTML文件和Javascripts,我用它来从Web服务获取数据。在尝试使用Android 4.1之前没有问题,但在尝试使用Android 4.1之后,我遇到了这个错误。

我阅读了很多文档但是我找不到解决这个问题的方法。

3 个答案:

答案 0 :(得分:52)

你需要做类似

的事情
if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) 
  wv.getSettings().setAllowUniversalAccessFromFileURLs(true);

答案 1 :(得分:8)

@我是开发人员和其他遇到同样问题的人。

Slushis解决方案运行正常。但是如果你想编译并支持API11以下的系统,你必须添加以下内容:

if (Build.VERSION.SDK_INT >= 16) {  
    Class<?> clazz = webView.getSettings().getClass();
    Method method = clazz.getMethod("setAllowUniversalAccessFromFileURLs", boolean.class);
    if (method != null) {
        method.invoke(webView.getSettings(), true);
    }
}

这将在运行时加载和调用该方法,因此您可以使用例如Android 2.3.3。

答案 2 :(得分:0)

您的网络服务是否来自同一个域?我曾经在对不同域下的服务进行ajax调用时遇到此错误。 如果您可以控制Web服务,则可以进行设置 Access-Control-Allow-Origin:* 在标题中,(虽然这种方式不是一种安全的方式。)