例如,运行H5页面,请求一个地址资源,如果不是本站地址,浏览器就会报跨域错误,这样访问受限
问题呈现
例如,项目代码里是这样写的,运行H5测试
uni.request({url:'https://gitcode.net/zs1028/stat...ouces_2023/-/...',success(res) {console.log(res)},fail(err) {console.error(err)}})
因为
https://gitcode.net
不是本站地址,根据浏览器同源策略,是会报跨域错误,
解决步骤
打开项目的manifest.json
文件,以源码视图查看,添加以下代码
{//..."h5": {"devServer": {"port": 5174,"disableHostCheck": true,"proxy":{"/zs1028":{"target": "https://gitcode.net","changeOrigin":true,"secure": false}}}},//...}
解释以下
- 属性
port
是本站的服务器访问IP对应端口号,如果是发布的网站,应该填80或者443- 属性
/zs1028
是本地的访问接口,接口如果是/zs1028...
这样,就会交给本地服务器代理访问
最后,改成以下代码,就能跨域访问了,实际上是代理访问
uni.request({url:'/zs1028/stat...ouces_2023/-/...',success(res) {console.log(res)},fail(err) {console.error(err)}})
对代理这一次陌生?第一次听说不要紧,来科普一下,
代理,比如生活中找来的中介差不多的意思