Ant Design Pro 跨域 及代理 mock 及 Ant Design Pro 2.x 版本的坑

本文介绍了AntDesignPro中出现的跨域问题及其解决方法。针对AntDesignPro2.x版本,详细讲解了如何通过配置代理解决跨域问题,并提到了缓存导致的问题及解决思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ant Design Pro 跨域请求会出现如下错误: 

Request URL: http://192.168.180.81:30002/apiv2/admin/auth
Request Method: OPTIONS
Status Code: 401 Unauthorized
Remote Address: 192.168.180.81:30002
Referrer Policy: no-referrer-when-downgrade

明明是用 POSt 请求, 却变成了 OPTIONS, 这是因为跨域的情况下, 会先发送一个 OPTIONS 请求去查询, 根本一个问题就要解决跨域即可. 

参考: 

http://www.ruanyifeng.com/blog/2016/04/cors.html

 

  • 如何解决跨域呢 ?

Ant Design Pro 2.x 版本已经不用 .roadhogrc.mock.js 文件了, 那代理应该何如设置呢 ? 官方文档只讲有 mock 伪造数据, 没有讲如何设置代理. 因为它底层使用了 UniJS, 应该在它的文档里找.

找到了这里 https://umijs.org/zh/config/#proxy

 

按照说明, 在 config/config.js 文件里添加代理即可自动代理:

// 注意: 这里改成自己的实际地址 
 proxy: {
    '/apiv2': {
      'target': 'http://192.168.180.81:30002/',
      'changeOrigin': true,
    },
  },
  • 缓存导致的坑

2.0 版本 request.js 中对频繁调用的接口会做了缓存, 所以当频繁访问时 , 会出现一些问题, 比如登录后马上退出, 退出后马上登录, 它直接拿前端缓存, 导致登录状态和系统不同步. 

这是看后端的请求才看出来的.... 根本没有请求, 想了好久才记起来.

// src\utils\request.js 中有这么一段代码
 return fetch(url, newOptions)
    .then(checkStatus)
    .then(response => cachedSave(response, hashcode))   // 这个 Cache 把我害惨了 ...
    .then(response => {
...................

就是 cacheSave 方法, 保存了缓存, 直接注释掉.

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值