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

bah*_*lan 15 javascript android xmlhttprequest cross-domain

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

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

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

slu*_*shi 52

你需要做点什么

if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) 
  wv.getSettings().setAllowUniversalAccessFromFileURLs(true);
Run Code Online (Sandbox Code Playgroud)

  • 如果我在api11下有项目该怎么办? (3认同)
  • 谢谢,我会试试.但Google API模拟器没有这个问题; 挺有趣的. (2认同)
  • 我不想听起来很愚蠢,但我在项目中添加了什么文件? (2认同)

小智 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

这将在运行时加载和调用该方法,因此您可以使用Android 2.3.3进行编译.