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

前端面试题22 | 什么是跨域问题?怎么解决?

哈喽小伙伴们大家好!新的一周开始啦~距离2024年结束也仅有两个月了,不知道大家年初给自己制定的目标实现了多少?不管怎样,接下来的两个月都请继续加油哦!我们坚持下来了,我们就是最棒的!

今天,继续来给大家分享一道面试题

在开发中,我们经常会遇到跨域的问题,尤其是开发前后端分离的项目,大家有没有想过为什么会出现跨域呢?

简单的来给大家举个例子

你要跟qq的一个人发消息,但是你没有添加他的好友,那么你们能直接进行交流吗?肯定是不能的

那你们后来添加了好友,但是你是在线的一个状态(这是在线指的是网络连接正常),而你的好朋友是离线的状态,那么尽管你发了消息,对方能收到吗?

那如果以上两个条件都满足了,你是qq发的消息,对方微信能收到吗?显然不能

那么,同理,我们来看看软件开发中的跨域

 什么是跨域?

跨域(Cross-Origin Resource Sharing,CORS)是指浏览器在执行 AJAX 请求时,由于安全原因,对不同源(协议、域名或端口不同)之间的请求做出了限制。这种限制被称为同源策略(Same-Origin Policy),它防止一个域的文档或脚本与另一个域的资源进行交互。

为什么需要跨域?

同源策略是为了防止恶意文档获取对另一个域的敏感数据。例如,如果一个网站可以读取另一个网站的内容,那么它可能会读取用户的私人信息,如银行账户信息。

跨域问题的常见场景

1. **前端请求API**:当你的前端应用尝试从一个不同的域(如第三方API)获取数据时。
2. **前后端分离**:前端和后端部署在不同的域上。
3. **单页面应用(SPA)**:SPA框架(如React、Vue、Angular)通常需要从后端API获取数据。

怎么解决跨域?

1. **CORS响应头**:
   - 服务器可以在响应头中设置`Access-Control-Allow-Origin`来指定哪些源可以访问资源。
   - 例如,`Access-Control-Allow-Origin: *`允许所有域访问,或者指定具体的源,如`Access-Control-Allow-Origin: https://example.com`。

2. **JSONP(已过时)**:
   - JSONP(JSON with Padding)是一种早期的解决方案,通过`<script>`标签绕过同源策略。
   - 由于安全性问题和限制,JSONP已被CORS取代。

3. **代理服务器**:
   - 在前端和后端之间设置一个代理服务器,所有前端请求先发送到代理服务器,然后由代理服务器转发到目标服务器。
   - 这种方式可以隐藏后端服务的实际地址,并且可以处理跨域问题。

4. **文档.domain**:
   - 如果两个域名属于同一个主域(例如`sub1.example.com`和`sub2.example.com`),可以通过设置`document.domain`来允许它们之间的交互。

5. **窗口消息(Window.postMessage)**:
   - 使用`window.postMessage`方法在不同源的窗口之间安全地传递消息。

6. **CORS Anywhere(Node.js代理)**:
   - 使用Node.js创建一个代理服务,如CORS Anywhere,它可以在开发环境中临时解决跨域问题。

7. **浏览器插件**:
   - 对于开发和测试目的,可以使用浏览器插件来禁用同源策略。

好啦,今天的分享就到这里,我是程序媛小李,一位正在往全栈方向发展的前端小姐姐,希望今天的分享对你有帮助,我们下期再见!

相关文章:

前端面试题22 | 什么是跨域问题?怎么解决?

哈喽小伙伴们大家好!新的一周开始啦~距离2024年结束也仅有两个月了,不知道大家年初给自己制定的目标实现了多少?不管怎样,接下来的两个月都请继续加油哦!我们坚持下来了,我们就是最棒的! 今天,继续来给大家分享一道面试题 在开发中,我们经常会遇到跨域的问题,尤其是开发前后…...

HarmonyOS Next星河版笔记--界面开发(3)

属性 1.1.设计资源-svg图标 需求&#xff1a;界面中展示图标→可以使用的svg图标(任意放大缩小不失真、可以改变颜色) 使用方式&#xff1a; ①设计师提供&#xff1a;基于项目的图标&#xff0c;拷贝到项目目录使用 Image($r(app.media.ic_dianpu)) .width(40) fillColor…...

科研绘图系列:R语言组合连线图和箱线图(linechart+boxplot)

文章目录 介绍加载R包数据数据预处理画图1画图2系统信息介绍 连线图(Line Chart)是一种常用的数据可视化图表,它通过将一系列数据点用直线段连接起来来展示数据随时间或有序类别变化的趋势。以下是连线图可以表示的一些内容: 时间序列数据:展示数据随时间变化的趋势,例如…...

对象的接口与设计模式在其中的作用

对象的接口 对象的接口定义了对象的行为和如何与外界进行交互。以下是对象接口的详细解释&#xff1a; 成员函数&#xff08;Member Functions&#xff09; 定义&#xff1a;成员函数是定义在类中的函数&#xff0c;用于实现类的行为。成员函数可以通过对象来调用&#xff0…...

如何自学机器学习?

自学机器学习可以按照以下步骤进行&#xff1a; 一、基础知识准备 数学基础&#xff1a; 高等数学&#xff1a;学习微积分&#xff08;包括导数、微分、积分等&#xff09;、极限、级数等基本概念。这些知识是后续学习算法和优化方法的基础。 线性代数&#xff1a;掌握矩阵…...

python中应该使用while 1吗?按位运算符可以代替逻辑运算符使用吗?

while 1 很多初学者都很喜欢使用while 1&#xff0c;原因可能是&#xff0c;1只需要输入一个字符&#xff0c;更加“省事”&#xff0c;可以“偷懒”&#xff0c;并且&#xff0c;1看起来更加简洁明了。 实际上&#xff0c;在python中&#xff0c;while 1与while True是等价的…...

线程ID和线程库

在linux中&#xff0c;线程的运行可以用lwp来标识&#xff0c;只是操作系统的标识方法&#xff0c;lwp表示轻量级进程&#xff0c;在Linux中&#xff0c;进程和线程都可以用lwp来标识&#xff0c;而对于用户来说&#xff0c;也有对应的线程ID&#xff0c; 线程库 在linux中&a…...

使用AWS Lambda构建无服务器应用程序

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用AWS Lambda构建无服务器应用程序 AWS Lambda 简介 创建 AWS 账户 创建 Lambda 函数 配置触发器 编写和测试代码 示例代码&am…...

响应式网页设计案例

文章目录 概念核心理念响应式设计的优点实现方法代码案例解释 概念 响应式设计核心理念是一个网站能够根据访问者的设备特性自动调整布局、内容和功能&#xff0c;以提供最佳的用户体验。它依赖于CSS媒体查询、灵活的网格布局和可伸缩的图像&#xff0c;确保网页内容在不同设备…...

麦麦Docker笔记(一)

本文记录如何零基础使用Docker Desktop。 使用操作系统为 macos 15.0.1 相关地址 docker官网 docker hub的镜像地址 下载docker desktop 前往官网下载&#xff0c;我用的macbook&#xff0c;下载的是apple 吸力根版本的&#xff0c;然后拖到application里完成安装&#xff…...

【设计模式系列】总览

努力填完如下表格ing... 设计模式简述详细链接单例模式&#xff08;Singleton&#xff09;工厂方法模式&#xff08;Factory Method&#xff09;简单工厂模式&#xff08;Simple Factory Pattern&#xff09;简单工厂模式是一个静态的工厂类&#xff0c;它提供一个根据参数决定…...

P11118 [ROI 2024 Day 2] 无人机比赛 题解

Description 有 n n n 架无人机参与比赛&#xff0c;第 i i i 架无人机飞过一个单位距离需 t i t_i ti​ 秒。 赛道为一条直线&#xff0c;上面有 m m m 个存档点&#xff0c;第 i i i 个存档点距起点 s i s_i si​ 个单位长度&#xff0c;保证 s i 1 > s i s_{i1…...

时序数据库是什么:概念、特点与分类简析

时序数据与时序数据库的“保姆级”科普&#xff01; 作为将数据价值转化为产能能效的“核心大脑”&#xff0c;数据库的发展依然处于加速期&#xff0c;面向不同数据类型的数据库类型也在不断增加。 在众多细分领域数据库类型中&#xff0c;伴随制造业数字化转型的行业趋势和多…...

大数据上岗.入职.就业面试题

1.海量日志数据,提取出某日访问阿里次数最多的那个IP   首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到ip是32位的,最多有个2^32个ip。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,在找出每个小文件中出现频率…...

2016年7月和8月NASA的气候成像(ATom)-1飞行活动期间测量的黑碳(BC)质量混合比(单位为ng BC / kg空气)

目录 简介 摘要 代码 引用 网址推荐 知识星球 机器学习 简介 ATom: Black Carbon Mass Mixing Ratios from ATom-1 Flights 该数据集提供了在2016年7月和8月NASA的气候成像&#xff08;ATom&#xff09;-1飞行活动期间测量的黑碳&#xff08;BC&#xff09;质量混合比&…...

python opencv3

三、图像预处理2 1、图像滤波 为图像滤波通过滤波器得到另一个图像。也就是加深图像之间的间隙&#xff0c;增强视觉效果&#xff1b;也可以模糊化间隙&#xff0c;造成图像的噪点被抹平。 2、卷积核 在深度学习中&#xff0c;卷积核越大&#xff0c;看到的信息越多&#xff0…...

git原理与上传

言&#xff1a; git是一个软件&#xff0c;gitee/github是一个网站&#xff0c;这里有什么联系吗&#xff1f;我们身为一个程序员不可能不知道github&#xff0c;但是毕竟这是外国的网站&#xff0c;我们不翻墙的情况下&#xff0c;是无法访问的(或者就是太慢了&#xff0c;或…...

LeetCode:633. 平方数之和(Java)

633. 平方数之和 题目描述&#xff1a; 给定一个非负整数 c &#xff0c;你要判断是否存在两个整数 a 和 b&#xff0c;使得 a2 b2 c 。 示例 1&#xff1a; 输入&#xff1a;c 5 输出&#xff1a;true 解释&#xff1a;1 * 1 2 * 2 5示例 2&#xff1a; 输入&#xf…...

linux查看端口状态的命令合集

linux查看端口状态的命令合集 直接使用 netstat 命令 如果你不需要超级用户权限&#xff0c;可以直接运行 netstat 命令&#xff1a; netstat -tuln 使用 ss 命令 ss 是一个更现代的工具&#xff0c;通常不需要超级用户权限就能查看端口信息。你可以尝试使用 ss 命令&#xff…...

幼儿园篮球游戏

题目描述&#xff1a; 幼儿园里有一个放倒的圆桶&#xff0c;它是一个 线性结构&#xff0c;允许在桶的右边将篮球放入&#xff0c;可以在桶的左边和右边将篮球取出。每个篮球有单独的编号&#xff0c;老师可以连续放入一个或多个篮球&#xff0c;小朋友可以在桶左边或右边将篮…...

Nacos CVE-2021-29441漏洞深度解析:User-Agent绕过与鉴权失效

1. 这个漏洞不是“改个Header就能登录”&#xff0c;而是Nacos鉴权体系的一道裂缝CVE-2021-29441这个编号在Nacos社区里曾被轻描淡写地归为“低危”&#xff0c;直到我接手一个金融客户线上告警——他们的Nacos集群在凌晨三点被批量创建了37个高权限用户&#xff0c;所有操作日…...

反向海淘站点常见配置故障复盘与数据一致性优化方案

摘要反向海淘独立站运行过程中&#xff0c;容易出现价格换算异常、页面语种错乱、商品同步失败、订单状态停滞、运费计算偏差等问题。多数故障并非系统底层缺陷&#xff0c;而是配置逻辑理解偏差、数据规范不统一引发。本文结合实际运维场景&#xff0c;汇总高频故障成因&#…...

为什么你的Midjourney雾效总像“水汽”而非“山岚”?——资深CG总监拆解大气散射物理模型在--v 6.1中的3层映射偏差

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;为什么你的Midjourney雾效总像“水汽”而非“山岚”&#xff1f; Midjourney 生成的雾气常呈现为均匀、半透明、边界模糊的“水汽感”——厚重、潮湿、缺乏层次与呼吸感。这并非模型能力不足&#xff0c;而是提…...

JMeter实现RSA签名验签全流程实战

1. 为什么RSA加密接口测试总卡在“连通但失败”这一步&#xff1f; 你有没有遇到过这种情况&#xff1a;接口文档写得清清楚楚&#xff0c;Postman里填好URL、Header、Body&#xff0c;一发请求——返回 {"code":4001,"msg":"签名验证失败"} …...

HKMG工艺的“阿喀琉斯之踵”:聊聊那个无法移除的SiON界面层与未来0.3nm的挑战

HKMG工艺的隐形枷锁&#xff1a;SiON界面层的物理宿命与亚纳米级突围战 在半导体工艺演进的史诗中&#xff0c;HKMG&#xff08;高K金属栅&#xff09;技术曾被寄予厚望——它用金属栅极替代传统多晶硅&#xff0c;搭配高K介质材料HfO₂&#xff0c;一举解决了栅极耗尽和漏电流…...

终极Windows键盘重映射解决方案:SharpKeys完全指南

终极Windows键盘重映射解决方案&#xff1a;SharpKeys完全指南 【免费下载链接】sharpkeys SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key. 项目地址: https://gitcode.com/gh_mirrors/sh/sharpkeys 还在…...

HiveWE地图编辑器:告别卡顿,开启魔兽争霸III地图制作新纪元

HiveWE地图编辑器&#xff1a;告别卡顿&#xff0c;开启魔兽争霸III地图制作新纪元 【免费下载链接】HiveWE A Warcraft III world editor. 项目地址: https://gitcode.com/gh_mirrors/hi/HiveWE 还在为魔兽争霸III原版编辑器的缓慢加载和频繁卡顿而烦恼吗&#xff1f;你…...

别再手动调相机了!用Cinemachine插件5分钟搞定Unity第三人称跟随镜头(含FreeLook Camera配置)

别再手动调相机了&#xff01;用Cinemachine插件5分钟搞定Unity第三人称跟随镜头当你在Unity中开发角色扮演游戏时&#xff0c;是否经常被这些问题困扰&#xff1a;角色移动时镜头抖动、转向时视角卡顿、不同地形下镜头穿模&#xff1f;传统的手动编写相机跟随脚本不仅耗时耗力…...

Office RibbonX Editor:5分钟学会定制你的Office功能区界面

Office RibbonX Editor&#xff1a;5分钟学会定制你的Office功能区界面 【免费下载链接】office-ribbonx-editor An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF 项目地址: https://gitcode.com/gh_mirrors/of/office-ribbonx-e…...

数据库原理核心考点全解析

数据库原理期末考试核心知识点可系统性地划分为基础理论、数据模型与设计、SQL与查询优化、事务管理与并发控制、数据库安全与完整性以及数据库新技术六大模块。其核心内容与逻辑关系如下表所示&#xff1a; 模块核心知识点简要说明1. 基础理论数据库系统特点、三级模式结构、…...