当前位置: 首页 > news >正文

跨域问题。

目录

  • 跨域问题
    • 问题发现
    • 浏览器的同源策略
    • 解决办法

跨域问题

问题发现

在开发前后端分离的项目时(flask+vue),遇到过页面不显示的问题,查看控制台,有这样的提示

[localhost/:1](https://localhost/:1) Access to XMLHttpRequest at '[http://127.0.0.1:8000/category/list](http://127.0.0.1:8000/category/list)' from origin '[http://localhost:5173](http://localhost:5173/)' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我的后端用的IP端口是127.0.0.1:8000,前端是localhost:5173
控制台出现这个提示是由于跨域资源共享(CORS)策略导致的,也就是跨域。

浏览器的同源策略

浏览器的同源策略是浏览器的一种安全机制,用于限制一个源的文档或脚本如何与另一个源的资源进行交互。

“同源” 的定义是:协议相同(如 http 或 https)、域名相同(如 example.com)、端口号相同(如 80 或 443)
如果以上任意一项不同,浏览器就会认为这是跨域请求,并触发跨域限制。

对于我的这个情况,应该是因为端口号不一样导致的。

localhost和127.0.0.1

  • 127.0.0.1 回环地址,当设备向这个地址发送数据包时,数据包不会离开本地设备,而是直接被操作系统的网络协议栈接收并处理,就好像数据在设备内部 “转了一圈” 又回来了。在 IPv6 中,对应的回环地址是 ::1
  • Localhost 域名,通常作为本地主机的别名。很多操作系统的hosts文件都默认将 localhost 域名映射到 127.0.0.1 这个 IP 地址

浏览器会检查服务器的响应头中是否包含允许跨域的字段(如 Access-Control-Allow-Origin),根据这些头部信息来判断是否允许跨源访问。如果响应头中没有允许跨域的字段,浏览器会阻止前端应用访问响应数据。

解决办法

  1. 在响应头中添加 CORS 相关的字段。在flask可以直接使用flask_cors
from flask import Flaskfrom 
flask_cors import CORS
tz_app = Flask(__name__)
CORS(tz_app)

# 只允许特定源访问
# CORS(app, origins=['http://www.test.com']) 
  1. 使用websocket ,一种双向通信协议,不受同源策略的限制

相关文章:

  • 每日一练之链表的回文结构
  • LLaMA-Factory训练DeepSeek大模型+本地部署
  • Fedora41安装MySQL8.4.4
  • java每日精进 3.11 【多租户】
  • [Lc10_hash] 总结 | 两数之和 | 字符重排 | 存在重复元素 i ii | 字母异位词分组
  • 鸿蒙app开发中实现 底部抽屉效果动效
  • 修改secure-file-priv参数-mysql5.7.26限制不允许导入或导出的解决方法
  • 阿里云操作系统控制台实战评测:提升云资源管理与监控效率
  • MobileBERT: 一种适用于资源有限设备的紧凑型任务无关BERT
  • Ubuntu系统部署.NET 8网站项目
  • 部署vue+django项目(初版)
  • C语言:6.20字符型数据练习题
  • 基于Python 3.7、使用PyTorch构建的回归定位框架的详细实现
  • 线程相关作业
  • CI/CD—Jenkins配置Maven+GitLab自动构建jar包
  • 华为DSVPN
  • Manus AI:国产AI Agent的破局与隐忧
  • MyBatis-Plus 分页查询接口返回值问题剖析
  • got表hook和inlinehook的优缺?(面试题)
  • 深度学习历程
  • 民生访谈|今年上海还有哪些重要演出展览?场地配套如何更给力?
  • 巴基斯坦信德省卡拉奇发生爆炸
  • 纪录片《中国》原班人马打造,《船山先生》美学再升级
  • 鸿蒙电脑正式亮相,五年布局积累超2700项核心专利
  • 高进华“控股”后首份年报出炉,史丹利账上可动资金大幅缩水
  • 巴方称印军发动24起袭击,巴境内6处地点遭袭致8人死亡