码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • cors 跨域问题 git pages 前后端分离 vue nest 问题 解决+总结


    记一次配置github个人网站时的跨域问题总结

    git pages 截至2022年8月支持跨域访问(听说gitee不支持,所以无法实现前后端分离)
    本文使用方法:按照报错/问题寻找对应标题,进入链接学习相关概念/操作(本文不提供详细概念/操作)

    目录

    • 从小白搞懂cors
      • 前端devServer配置
      • 更改[axios的baseURL](https://www.axios-http.cn/docs/req_config)
      • 后端开启cors
      • withCredentials: false
    • 补充
              • 小小的补充

    从小白搞懂cors

    前端devServer配置

    在进行vue前端开发调用后端api时,网上都会提示配置devServer属性。按照网上教程部署vue到git pages时,会想当然的把target中的url替换为后端入口,导致git pages报404。

    注意:devServer只在开发环境下有效

    更改axios的baseURL

    当Node环境为生产环境时,更换baseURL实现链接指向后端入口。

    baseURL:
        process.env.NODE_ENV === "production"
          ? "https://backend.url:port/"
          : "/api",
    
    • 1
    • 2
    • 3
    • 4

    成功指向后端入口,随后出现跨域访问问题:

    Access to XMLHttpRequest at ‘https://backend.url:port/’ from origin ‘https://xiawusharve.github.io’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

    后端开启cors

    原因是浏览器检测到后端没有携带允许跨域访问的响应头
    在nest.js中,开启后端cors的方法是app.enableCors()(在main.ts中)
    有些开发者完成这个步骤后还会出现问题:

    The value of the ‘Access-Control-Allow-Origin’ header in the response must not be the wildcard ‘*’ when the request’s credentials mode is ‘include’. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.

    withCredentials: false

    有些开发者按照网上的教程不经意间设置了axios的withCredentials: true,设置成false即可

    补充

    仍然没有解决?参考我实际解决过程中踩的一些坑:

    1. 检查baseURL的后端入口是根目录(去掉/api/路径)
    2. app.enableCors({ origin: 'https://xiawusharve.github.io/' });手动输入前端地址,git pages可能不是这个origin(不太清楚),请使用缺省值。
    小小的补充

    请支持我和镭镭的网站!

  • 相关阅读:
    手机界面设计中12种常用布局 优漫动游
    面试常问:为什么 Vite 速度比 Webpack 快?
    11、MySql优化
    使用 Hugging Face 推理终端搭建强大的“语音识别 + 说话人分割 + 投机解码”工作流
    一文详解JackSon配置信息
    c++ primer中文版第五版作业第十七章
    裸奔的前端绿皮车
    MySQL-索引&事务
    基于Python实现并对比线性分类器与非线性分类器
    【Gradle-8】Gradle插件开发指南
  • 原文地址:https://blog.csdn.net/qq_19315559/article/details/126343634
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号