Android 4.1 上的访问控制允许源错误



我在Android 4.1中使用Access-Control-Allow-Origin有问题

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

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

你需要做类似的事情

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

@I开发人员和其他面临相同问题的人。

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进行编译。

您的 Web 服务是否来自同一域?我曾经在不同域下对服务进行 ajax 调用时收到此错误。如果您控制了 Web 服务,则可以设置访问控制允许来源: *在标头中,(尽管这种方式不是一种安全的方法。

相关内容

  • 没有找到相关文章

最新更新