东莞网站优化软件,wordpress主题模版修改,wordpress增加文章类型,中国世界排名足球[交互]接口与路由问题 场景描述问题分析解决方案 这是在实战开发过程中遇到的一个问题#xff0c;所以导致产生了服务端如何区分浏览器请求的是前端路由还是 api 接口的问题#xff1f;#xff1f;
场景描述
这是一个前后端分离开发的项目#xff0c;因此前端一般都会使用… [交互]接口与路由问题 场景描述问题分析解决方案 这是在实战开发过程中遇到的一个问题所以导致产生了服务端如何区分浏览器请求的是前端路由还是 api 接口的问题
场景描述
这是一个前后端分离开发的项目因此前端一般都会使用客户端路由现在的场景是前端代码打包后作为 java web 的静态资源在 tomcat 中部署时并且没有修改相关代码
此时通过浏览器端输入域名进入指定的 index.html 页面加载前端路由设定可以正常的一步步进行后续路由页面的访问
如果前端使用的 hash 路由在浏览器直接修改路由也可以正常的进行路由的访问与接口并不会混淆
但是如果使用的路由是浏览器路由也即 history 模式此时当访问非’/’(也即非根目录)的其它路由时就会出现问题
例如访问https://xxxx 会直接跳转到前端路由/指定跳转到的页面.在页面中点击导航形成的跳转会正常访问但是当直接修改浏览器的访问路径为一个路由例如xxxx/router/about 时服务端会将该请求直接导向 404并不会请求前端的路由
服务端或者前端如何判断浏览器发出的请求是路由请求还是 api 接口的请求因为此时它们在浏览器的地址形式是完全相同的
问题分析
该问题是很久之前遇到的一个问题当时并没有有效的解决方案所以最终是通过将路由改为 hash 路由的方式解决的
现在在看这个问题发现 虽然采用了前后端分离但是并不是完全的前后端分离
前后端的域名是相同的因此导致了可能触发接口的情况 部署时将前端项目复制到了 Java 的项目中最终还是像未分离时部署的方式是一样的因此域名一致java 项目的 xml 文件设置了静态资源的路径指向单页面首页浏览器地址非 html 后所以没有加载前端的路由此时自然无法实现路由的跳转
解决方案
完全的前后端分离此时域名分离自然不存在无法区分的问题java 配置所有的地址指向前端的首页