测试笔记
🗒️什么是跨域?
00 分钟
2024-1-3
2024-1-5
type
status
date
slug
summary
tags
category
icon
password
前言:在某次测试中发现下载功能无法使用,f12查看请求后发现下载请求的域名和当前系统的域名不一致,导致出现了跨域问题,故对此问题做下记录
当时是生产环境出现了该问题,但测服没有这个问题,于是排查后发现生产的华为云桶配置不支持跨域,修改配置后解决了该问题
notion image

什么是跨域

在Web开发中,跨域(Cross-Origin)指的是在浏览器环境下,从一个源(域、协议、端口)向另一个源发送请求的过程。当浏览器执行跨域请求时,会受到同源策略(Same-Origin Policy)的限制,该策略是一种浏览器安全机制,用于防止恶意网站窃取用户数据或发起恶意操作。

常见跨域问题

跨域问题在Web开发中经常遇到,以下是一些常见的跨域问题:
  1. XMLHttpRequest或Fetch请求的限制:浏览器限制使用XMLHttpRequest或Fetch API发送跨域请求,只能访问同一源的资源。
  1. Cookie、LocalStorage和IndexDB的限制:跨域请求无法读取和操作其他源的Cookie、LocalStorage和IndexDB数据。
  1. DOM访问限制:跨域请求无法直接访问其他源的DOM元素,这是出于安全考虑的限制。

如何解决跨域问题

为了解决跨域问题,开发人员可以采取以下常见的方法和技术:
  1. 使用JSONP(JSON with Padding):JSONP利用<script>标签的跨域特性,通过动态创建<script>标签来请求跨域资源,并将响应数据封装在回调函数中返回。
  1. 跨域资源共享(CORS):CORS是一种机制,允许服务器在响应中设置一些特殊的HTTP头,告诉浏览器该服务器允许哪些源进行跨域访问。通过在服务器端设置合适的CORS头,可以解决大部分跨域问题。
  1. 代理服务器:使用代理服务器是另一种常见的解决跨域问题的方法。前端应用发送请求到同源的代理服务器,然后由代理服务器转发请求到目标源,并将响应返回给前端应用。这样,前端应用就绕过了浏览器的同源策略限制。
  1. WebSocket协议:WebSocket是一种全双工通信协议,可以在浏览器和服务器之间建立持久的连接。由于WebSocket协议并不受同源策略的限制,因此可以实现跨域通信。
  1. 使用反向代理:通过在同一域名下部署反向代理服务器,将前端应用和目标源放在同一域名下,从而避免跨域问题。
以上是一些常见的解决跨域问题的方法。根据具体的情况和需求,开发人员可以选择适合自己项目的解决方案。在实施跨域解决方案时,还应该考虑安全性和性能等方面的因素。
希望本文对您理解跨域问题及其解决方案有所帮助。如有任何问题或需要进一步的帮助,请随时告诉我。
 
💡
欢迎您在底部评论区留言,一起交流~
上一篇
测试常用sql语法
下一篇
DNS常用类型介绍

评论
Loading...