浏览器有同源策略的限制,请求有跨域问题,小程序没有,但是我们开发小程序时,可以用浏览器快速调试,这样就出现了跨域问题,有以下的解决方法:

1.CROS:后端通过响应头告诉浏览器不要管

这个得看情况了

2.服务器代理:我们自己搭建一个同源服务器(devSever)让它去访问跨域的后端

在main.js中添加这句,条件渲染


// #ifdef  MP-WEIXIN
$http.baseUrl = 'https://www.baidu.com'
// #endif

上面表示配置的请求根路径只在小程序环境起作用,浏览器环境走下面代理服务器

在根目录下manifest.json文件中最后添加代理配置

  "h5": { //浏览器配置
    "devServer": {
        "port": "8080",
        "proxy": {
            "/api": {
                "target": "https://www.baidu.com",
                "changeOrigin": true
            }
        }
    }
  }

3.修改浏览器配置:告诉浏览器可以访问后端

在桌面新建chrome浏览器快捷方式目标添加参数:--args --disable-web-security --user-data-dir="C:/ChromeDevSession"

在你的目标地址后填写,最后文件示例为:"C:Program FilesGoogleChromeApplicationchrome.exe" --args --disable-web-security --user-data-dir="C:/ChromeDevSession"

注意这里的文件路径是你自己的,这里只作示例。

最后修改:2021 年 12 月 05 日
感谢大哥送来的卡布奇诺和冰阔乐!