Android WebView 报No 'Access-Cont

2020-10-27  本文已影响0人  启朗

记录遇到的一个bug,H5端调用原生的相机和相册上传头像,但是相册选择后上传没问题(后面发现也是有问题的),相机拍完照后上传却报如下错误:

"Failed to load [http://shopinter.lkkjjt.com/bus/upload/authen] No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '[http://h5.lkkjjt.com](http://h5.lkkjjt.com/)' is therefore not allowed access.", source: [http://h5.lkkjjt.com/bus/my/authen](http://h5.lkkjjt.com/bus/my/authen) (0)

猛的一看,跨域问题?第一反应想找前端同事,但是ios是可以的,用android原生浏览器拍照也可以,那就是自己代码的问题了,可是我的代码已经配置好了

  /* 设置可以访问文件 */
mWebView.getSettings().setAllowFileAccess(true);
// 是否允许通过file url加载的Javascript读取本地文件,默认值 false
mWebView.getSettings().setAllowFileAccessFromFileURLs(true);
// 是否允许通过file url加载的Javascript读取全部资源(包括文件,http,https),默认值 false
mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);

百度一番有的说要这么配置:

try {
    Class<?> clazz = webView.getSettings().getClass();
    Method method = clazz.getMethod("setAllowUniversalAccessFromFileURLs", boolean.class);
     if (method != null) {
          method.invoke(webView.getSettings(), true);
         }
      } catch (NoSuchMethodException e) {
            e.printStackTrace();
    } catch (InvocationTargetException e) {
                e.printStackTrace();
   } catch (IllegalAccessException e) {
                e.printStackTrace();
 }

运行测试还是不行,于是怀疑是不是拍照存储的路径有问题,改了路径测试不行。然后在想为什么选择图片就可以呢?
一波操作!点击选择相册,选择刚拍的照片,确定。
。。。。。。

传不了,还是报跨域的错误!!!

就在此时,不经意瞄了下照片的大小,2M多,额,感觉是照片大小的问题。

又一波操作!拍完的照片,选择的照片统统压缩,运行测试,哎!,可以了!之所以之前测试选择相册可以上传,那是照片大小不大,在200k以下。

好了,终于解决了,不知道为什么照片太大,会报跨域问题!!!

上一篇下一篇

猜你喜欢

热点阅读