我在Android 4.1上遇到Access-Control-Allow-Origin问题
在我的应用程序中,我有一些本地HTML文件和Javascripts,我用它来从Web服务获取数据。在尝试使用Android 4.1之前没有问题,但在尝试使用Android 4.1之后,我遇到了这个错误。
我阅读了很多文档但是我找不到解决这个问题的方法。
答案 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:* 在标题中,(虽然这种方式不是一种安全的方式。)