我在 Android 4.1 上遇到 Access-Control-Allow-Origin 问题
在我的应用程序中,我有一些本地 HTML 文件和 Javascript,用于从 Web 服务获取数据。在尝试 Android 4.1 之前没有问题,但是在尝试 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);
@我是开发人员和其他面临同样问题的人。
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 服务具有控制权,则可以在标头中设置 Access-Control-Allow-Origin: * (尽管这种方式不是一种安全的方式。)