Blog
首页
文档
收藏
关于
  • 在线转换时间戳 (opens new window)
  • 在线压缩图片 (opens new window)
  • Float-Double转二进制 (opens new window)
  • 文件转Hex字符串 (opens new window)

HiuZing

🍑
首页
文档
收藏
关于
  • 在线转换时间戳 (opens new window)
  • 在线压缩图片 (opens new window)
  • Float-Double转二进制 (opens new window)
  • 文件转Hex字符串 (opens new window)
  • 前端面试题

  • JavaScript

  • Vue2

  • port

  • CSS

  • Node.js

  • JavaScript优化

  • uniapp

    • uniapp-上传图片
    • uniapp-支付(支付宝和微信)
    • uniapp-复制(设置系统剪贴板)
    • uniapp-rich-text无法处理video问题
    • uniapp-生产和开发环境
    • uniapp-设置全局变量
    • uniapp-自定义导航栏
    • uniapp-跨域
      • 场景
      • 解决方案
    • uniapp-获取用户手机号
    • uniapp-打包发布
    • uniapp-蓝牙
  • Mini Program

  • TypeScript

  • 面向对象编程

  • UI组件

  • Plugin

  • Vue3

  • 性能优化

  • Axios

  • 状态管理

  • React

  • Mock

  • Icon

  • Template

  • 构建工具

  • 项目规范配置

  • Taro

  • SVG

  • React Native

  • 前端
  • uniapp
HiuZing
2023-05-09
目录

uniapp-跨域

# 场景

如需开发 H5 版本,本地调试会碰到跨域问题

# 解决方案

  1. 使用 HbuilderX 内置浏览器预览。内置浏览器经过处理,不存在跨域问题。

  2. 在 manifest.json 中配置,然后在封装的接口中判断 url

    我们通过 devServer.proxy 字段来设置代理。这里我们配置了一个代理规则,将以 /api 开头的请求代理到 http://api.example.com 目标服务器,并开启了跨域支持。我们还通过 pathRewrite 字段对请求路径进行了重写,去掉了路径中的 /api 前缀,从而使请求路径更加简洁。

    假设我们在项目中发起一个请求 /api/getData,它会被代理到 http://api.example.com/getData。这样,我们的前端代码就可以在不同域名下进行跨域请求了。

    // manifest.json
    {
      "h5": {
        "devServer": {
          "proxy": {
            "/api": {
              "target": "https://api.example.com",// 将请求代理到目标服务器
              "pathRewrite": {
                "^/api": "", // 重写请求路径,去掉请求路径中的/api前缀
              }
            }
          }
        }
      }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    //判断当前是否生产环境
    let url = (process.env.NODE_ENV == 'production' ? baseUrl : '/api') + api;
    
    1
    2
  3. 在 manifest.json 中配置,然后在封装的接口中判断 url

    // vue.config.js
    module.exports = {
      devServer: {
        proxy: {
          '/api': {
            target: 'https://***.***.com',
            pathRewrite: {
              '^/api': ''
            }
          }
        }
      }
    };
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    如果 2、3 方法同时使用,2 会覆盖 3。

上次更新: 2024/08/14, 04:14:33
uniapp-自定义导航栏
uniapp-获取用户手机号

← uniapp-自定义导航栏 uniapp-获取用户手机号→

最近更新
01
React Native 使用SVG
08-13
02
Docker基础命令
08-04
03
算数逻辑单元
07-30
更多文章>
Theme by Vdoing | Copyright © 2021-2024 WeiXiaojing | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式