美文网首页
Android WebView 报No 'Access-Cont

Android WebView 报No 'Access-Cont

作者: 启朗 | 来源:发表于2020-10-27 17:04 被阅读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以下。

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

    相关文章

      网友评论

          本文标题:Android WebView 报No 'Access-Cont

          本文链接:https://www.haomeiwen.com/subject/faexvktx.html