我在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 服务,则可以设置访问控制允许来源: *在标头中,(尽管这种方式不是一种安全的方法。