proxy代理uniapp官网明确指出配置是在h5属性下进行配置,由于app端是不存在跨域的情况,不存在跨域的情况,所以不需要考虑app端代理,只需要将配置信息配对就可以了

我是用的uview封装的请求方式,在main.js中配置服务器地址,一开始我没考虑到app端不存在跨域问题,我统一用了一个地址

Vue.prototype.$url = ''

mainfest.json中添加:

"h5" : {
   "devServer" : {
       "port" : 8000,
       "disableHostCheck" : true,
       "proxy" : {
           "/api" : {
               "target" : "http://xx.xx.xx.xx:8000/",
               "ws" : false,
               "secure" : false,
               "changeOrigin" : true,
               "pathRewrite" : {
                   "^/api" : "/"
               }
           }
       }
   }
    },

如果这样写就错了,因为我全局的地址是‘’,h5是将地址代理到了指定的路径,但是移动端不识别代理,所以他拿到的还是Vue.prototype.$url = ‘’,就导致找不到服务器地址

改进:

//#ifndef H5
Vue.prototype.$url = 'http://xx.xx.xx.xx:xx'
//#endif
 
//#ifdef H5
Vue.prototype.$url = '/api'
//#endif

用条件语句将app端和h5端分别定义,就解决了两端请求服务器的问题

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐