被 CORS 气到想砸电脑?我用这一招,本地开发一键解套

刚接触 API 的同学,遇到 CORS 往往会被绕进一个黑洞。 然而,只要你换个路径:让请求经由代理从服务端发出,而不是从浏览器硬跨域,问题就轻松化解。 这招,曾替我在上线前省下好几天的来回扯皮。 希望也能帮到此刻的你。

CORS 报错

你在做一个 React 或 Next.js 的前端。 你准备从某个 API 拉数据。 你手一抖,fetch 发出去,然后——

Access to fetch at 'https://api.example.com/data'
from origin 'http://localhost:3000' has been blocked
by CORS policy.

砰!CORS 报错直击灵魂。 如果你经历过,你就懂那种无力感。

⚠️ 这玩意儿为啥老来找茬?

CORS(跨域资源共享)是浏览器内置的安全机制:它会阻止localhost:3000 的前端代码,直接去请求另一个来源(比如 api.example.com),除非对方服务端明确放行相应的 CORS 头。

然而,当你不掌控后端时,你就被动了。 至少,我曾经以为我被卡死了。

救我于水火的偏方:本地代理

与其苦苦央求后端改 CORS,不如在本地起一个代理,把前端请求“伪装”成同源再转发出去。因此,浏览器不拦你,你也不再被吊打。

操作就三步:
1)安装 http-proxy-middleware
npm install http-proxy-middleware
    2)Create React App 项目里,新建/编辑 src/setupProxy.js
    const { createProxyMiddleware } = require('http-proxy-middleware');
    
    module.exports = function (app) {
      app.use(
        '/api',
        createProxyMiddleware({
          target: 'https://api.example.com',
          changeOrigin: true,
          pathRewrite: {
            '^/api': '', // 转发前去掉 /api 前缀
          },
        })
      );
    };
    3)前端代码里改成这样:
    fetch('/api/data') // 不再直打 https://api.example.com/data

      搞定CORS 直接消失。

      ⚙️ 加餐:Next.js 的写法在 Next.js 里,创建 next.config.js

      module.exports = {
        async rewrites() {
          return [
            {
              source: '/api/:path*',
              destination: 'https://api.example.com/:path*',
            },
          ];
        },
      };

      此后你依然请求 /api/...,但 Next.js 会在服务端把请求代理到真实地址。于是,不需要动后端,CORS 也不再作妖。

      🤯 为啥它就灵了?因为请求不是由浏览器跨域发出,而是由(本地)服务端/开发服务器代劳:

      代理替你“出面”,再把结果转交给前端。

      浏览器的 CORS 策略因此不被触发。

      听起来“像开了挂”,但这真的合法合规

      🛠 我常用的工具清单

      • http-proxy-middleware(CRA 场景稳)
      • Next.js rewrites(服务端转发更优雅)
      • cors-anywhere(临时测试、权衡使用)
      最后

      刚接触 API 的同学,遇到 CORS 往往会被绕进一个黑洞。 然而,只要你换个路径:让请求经由代理从服务端发出,而不是从浏览器硬跨域,问题就轻松化解。 这招,曾替我在上线前省下好几天的来回扯皮。 希望也能帮到此刻的你

      AI大模型学习福利

      作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

      一、全套AGI大模型学习路线

      AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

      因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

      二、640套AI大模型报告合集

      这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

      因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获

      三、AI大模型经典PDF籍

      随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。


      因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获

      四、AI大模型商业化落地方案

      因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获

      作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量

      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

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

      抵扣说明:

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

      余额充值