码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • [交互]接口与路由问题


    [交互]接口与路由问题

    • 场景描述
    • 问题分析
    • 解决方案

    这是在实战开发过程中遇到的一个问题,所以导致产生了服务端如何区分浏览器请求的是前端路由还是 api 接口的问题??

    场景描述

    这是一个前后端分离开发的项目,因此前端一般都会使用客户端路由,现在的场景是前端代码打包后作为 java web 的静态资源在 tomcat 中部署时,并且没有修改相关代码

    此时,通过浏览器端输入域名,进入指定的 index.html 页面,加载前端路由设定,可以正常的一步步进行后续路由页面的访问

    如果前端使用的 hash 路由,在浏览器直接修改路由也可以正常的进行路由的访问,与接口并不会混淆

    但是如果使用的路由是浏览器路由,也即 history 模式,此时当访问非’/’(也即非根目录)的其它路由时就会出现问题

    例如访问:https://xxxx 会直接跳转到前端路由"/"指定跳转到的页面.在页面中点击导航形成的跳转,会正常访问,但是当直接修改浏览器的访问路径为一个路由例如:xxxx/router/about 时服务端会将该请求直接导向 404,并不会请求前端的路由

    服务端或者前端如何判断浏览器发出的请求是路由请求,还是 api 接口的请求?因为此时它们在浏览器的地址形式是完全相同的

    问题分析

    该问题是很久之前遇到的一个问题,当时并没有有效的解决方案,所以最终是通过将路由改为 hash 路由的方式解决的

    现在在看这个问题,发现:
    虽然采用了前后端分离,但是并不是完全的前后端分离

    • 前后端的域名是相同的,因此导致了可能触发接口的情况
      部署时将前端项目,复制到了 Java 的项目中,最终还是像未分离时部署的方式是一样的,因此域名一致
    • java 项目的 xml 文件设置了静态资源的路径,指向单页面首页
    • 浏览器地址非 html 后,所以没有加载前端的路由,此时自然无法实现路由的跳转

    解决方案

    1. 完全的前后端分离,此时域名分离,自然不存在无法区分的问题
    2. java 配置,所有的地址指向前端的首页
  • 相关阅读:
    Yolo-FastestV2:更快更轻
    ARM---day02
    跨时钟域问题(三)异步FIFO的Verilog实现(格雷码)
    java 短路运算符用法 和 短路运算符的好处
    大数据-玩转数据-Flink定时器
    【贪心构造证明】Codeforces Round #814 (Div. 2) E. Fibonacci Strings
    第二章 数据结构(三)
    java-mybatis-自定义interceptor拦截器-获取原生sql补全公共参数
    论文笔记:Lost in the Middle: How Language Models Use Long Contexts
    js “2018/01-2018/12“转为“2018年01月-2018年12月“,字符串的替换和插入
  • 原文地址:https://blog.csdn.net/tjj3027/article/details/130282021
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号