关于跨域问题的总结

跨域问题经常在浏览器访问接口时看到。

协议 + 域名 + 端口 三者完全相同,才算是同源。

理解跨域把握住一个点:是否允许跨域是后端要求的,前端只是执行者,如果接口返回不允许跨域且前后端不是同源,就会报错了。

再者是否允许跨域是根据返回体判断的所有,即使报跨域问题,接口也是执行的,数据库也是会访问的。

后端服务互相调用没有跨域问题是因为后端调用不像前端一样会检查是否跨域这个要求。

前端检查跨域是因为恶意网站的js脚本会获取到你的正规网站的cookie和本地存储位置,然后冒充访问。这块要注意了,浏览器的作用是帮我们拦截返回体。恶意脚本也能正常正规网站的接口,但是接口返回时浏览器发现不是同源请求就会报跨域异常。 举例子造成的结果就是,可能转账已经发起了,但是看不到是否成功的返回。

从这里也能看到一个好的浏览器的重要性。

同时要在后端服务中禁止设置为允许跨域的通配符。可以用@crossorigin设置个别接口为允许跨域。

同时也可以在ng中统一设置允许跨域。

相关推荐
CarIise2 小时前
Spring MVC 请求参数绑定与常用注解
java·spring·mvc
IT_陈寒2 小时前
Vite性能优化完全指南
前端·人工智能·后端
燕落南枝2 小时前
HTML 表单入门:表单容器、文本框与密码框属性详解
前端·microsoft·html
一条泥憨鱼2 小时前
AI Agent 安全实践:从 MCP 工具调用到 Java 权限校验
java·人工智能·安全
Nebula_g2 小时前
云禾外卖补充—项目整体后端运行逻辑-对流程的更深层次理解
java·开发语言·网络·数据库·状态模式·javase
萧瑟余晖3 小时前
Spring Security 6.x新特性与架构演进详解
java·spring·架构
\光辉岁月/3 小时前
1.Object类
java·面向对象·object类
TYC93 小时前
Mac创建Vue3+TypeScript或者React+TypeScript项目
前端·javascript·typescript
程序员小孔.3 小时前
基于 SpringBoot + UniApp + Vue 的家政服务系统设计与实现
前端·数据库·spring boot·python·docker·微信小程序
Profile排查笔记3 小时前
指纹浏览器 GitHub 项目怎么选?先看仓库交付的是工具、内核还是管理器
前端·人工智能·后端·自动化