【跨域】如何解决跨域问题

news2024/11/24 4:03:31

同源策略

同源

相同协议+相同域名+相同端口

内容

  • 浏览器的同源策略 - Web 安全 | MDN (mozilla.org)

浏览器页面向不同源的服务器发送ajax请求资源时,响应的数据会被浏览器拦截

意义

出于安全性的考虑,防止恶意获取数据

解决方案

JSONP

不使用ajax请求,替换为不受同源策略控制的script标签

缺点

  • 只支持get

不常用

Node正向代理

利用服务端请求不会跨域的特性,让接口和当前站点同域。

浏览器页面的请求都发给同源的node代理服务器,根据请求内容的不同转发给不同的服务器,再转发给浏览器

image.png

eg Vue-cli 3.x

// vue.config.js 如果没有就新建
module.exports = {
  devServer: {
    port: 8000,
    proxy: {
      "/api": {
        target: "http://localhost:8080"
      }
    }
  }
};

Nginx反向代理

浏览器页面的请求都发给同源的nginx代理服务器,根据请求内容的不同转发给不同的服务器,再转发给浏览器
image.png


server {
        listen 80;
        server_name local.test;
        location /api {
            proxy_pass http://localhost:8080;
        }
        location / {
            proxy_pass http://localhost:8000;
        }
}

缺点

  • 不够灵活,前后端人员需要协商请求路径

CORS

后端添加浏览器页面ip的白名单,浏览器获取http响应头后,判断页面ip是否在白名单中,决定是否拦截响应数据
跨源资源共享(CORS) - HTTP | MDN (mozilla.org)

springboot中的标签@CrossOrigin可以配置

websocket

没有了http头,就不受同源策略的限制

参考文章

  • 解决跨域问题的几种方案 - 知乎 (zhihu.com)
  • 10 种跨域解决方案(附终极方案) - 知乎 (zhihu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/614018.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Rust每日一练(Leetday0022) 最小路径和、有效数字、加一

目录 64. 最小路径和 Minimum Path Sum 🌟🌟 65. 有效数字 Valid Number 🌟🌟🌟 66. 加一 Plus One 🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 P…

docker水位如何清理(容器水位清理详细分析)

docker水位过高,清理怕出问题?,不知道清理什么?怕删错了?进入实践 第一步准备测试数据 创建 悬空的镜像(即REPOSITORY和TAG均为的镜像) docker pull busybox:musl docker tag busybox:musl b…

chatgpt赋能python:Python的更新:为什么你需要及时更新并如何更新

Python的更新:为什么你需要及时更新并如何更新 Python是一种强大的程序设计语言,它具有广泛的应用,从数据科学,机器学习到Web开发,都有着广泛的应用。不断更新的Python版本为开发者和用户提供了最新的功能和最佳实践。…

chatgpt赋能python:Python如何在同一行输出

Python如何在同一行输出 Python是一种高级编程语言,广泛应用于数据科学、Web开发、人工智能等领域。其中,输出内容是程序必不可少的一部分。本文将介绍在Python中如何在同一行输出多个内容。 一般输出 在Python中,使用print函数可以将内容…

Lecture 9 Lexical Semantics

目录 Introduction: sentiment analysis 引言:情感分析Word Semantics 单词语义Word meanings 单词含义WordNetSynsets 同义词集Noun Relations in WordNetHypernymy Chain 上位链Word SimilarityWord Similarity with PathsBeyond Path LengthAbstract NodesConcep…

GO 性能分析

GO 性能分析 简介 ​ go提供了内存分析工具,pprof利用它可以看cpu和内存的情况。 包含下面的几种类型: cpu内存阻塞锁 pprof分为大体分为两个部分 数据采集数据分析 数据采集有两种方式: 官方 官方提供了两种方式 runtime/pprof 这是用…

【AI】惠普暗夜精灵9安装Ubuntu20.04+nvidia驱动

1、关闭快速启动 NVIDIA驱动安装很是矫情,为了谨慎起见,还是禁用快速启动吧 在Win11下,进入控制面板–》硬件和声音–》电源选项–》更改电源按钮的功能 禁止“启用快速启动” 2、关闭设备加密 关闭设备加密,否则安装过程中会报:bitlocker加密需要解除 3、设置bios…

SpringMVC《学习笔记(21版尚硅谷)》

一、SpringMVC简介 1、什么是MVC MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体类Bean&#xff1…

Form表单(antd-design组件库)简单使用以及单一检查规则

1.Form表单 高性能表单控件,自带数据域管理。包含数据录入、校验以及对应样式。 2.何时使用 用于创建一个实体或收集信息。 需要对输入的数据类型进行校验时。 组件代码来自: 表单 Form - Ant Design 3.本地验证前的准备 参考文章【react项目antd组件-de…

chatgpt赋能python:Python如何变大字体的SEO技巧

Python如何变大字体的SEO技巧 在网页设计和优化中,使用合适的字体和字体大小是至关重要的。对于使用Python编程的开发人员和网站管理员来说,如何使Pyhton代码中的字体变大是一个非常有用的技巧。在本文中,我们将介绍几种方法来增大Python代码…

C语言7:输入若干个学生的成绩,统计出平均成绩

在程序编辑区编写程序,给定程序功能是: 从键盘上输入若干个学生的成绩,统计出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。 例如输入: 70 80 90 -1 输出: ave 80.00 --------OUTPUT----------- 70.0 程序有…

【茶话数据结构】查找最短路径——Dijkstra算法详解(保姆式详细图解,步步紧逼,保你学会)

💯 博客内容:【茶话数据结构】查找最短路径——Dijkstra算法详解 😀 作  者:陈大大陈 🦉所属专栏:数据结构笔记 🚀 个人简介:一个正在努力学技术的准前端,专注基础和实…

软考A计划-电子商务设计师-模拟试题卷一

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

chatgpt赋能python:Python抢票的绝招

Python 抢票的绝招 随着互联网技术的不断发展,越来越多的人开始享受网购的便利。但是,随着一些热门事件的到来,如演唱会、体育比赛等,大家面临同一个问题:如何抢到热门事件的门票?这时,Python …

Win10利用剪贴板多次粘贴

工作中需要经常复制粘贴图片,每次ctrl C, ctrl V来回切换效率很低 网上有很多剪贴板增强工具,但win10本身有增强版的功能 多次复制后,在需要粘贴的地方按下,Windows徽标 V,就会出现所有复制过的内容 需要哪个直接点…

2023/06/05 PM Day4 软件项目生存期和生命周期

视频参考地址: B站闫波软件项目管理视频学习. 视频资源:video P4-P6 本篇重点:项目生存期 简书日更计划同步记录🏃… 项目生命周期 软件项目生命周期 *项目生命周期的阶段 C概念/启动阶段:确立项目需求和目标D开发/计…

chatgpt赋能python:Python如何把数据存到字典

Python如何把数据存到字典 字典是Python中非常有用的数据类型之一,它允许您将值与唯一的键相关联,从而快速地查找、插入和删除数据。在这篇文章中,我们将介绍如何使用Python将数据存储到字典中。 什么是字典? 字典是Python中的…

[开发板]001瑞芯微3588s开发记录--装一个仿真环境

文章目录 前言1. 构建python环境2 模型转换 前言 我是一个开发板的新手,刚买了一个瑞芯微3588s的板子,目标是要学习嵌入式的开发,也就是说把深度学习的框架,跑到板子上。万丈高楼平地起步。先把仿真环境搭建起来。 仿真环境可以跑…

趣未来科技董事长黄婵娇:专注创新研发,把公司当做科研机构来运作!

身为研发型董事长,黄婵娇女士谈及“技术”,眼中总是透着由衷的自豪。她的办公室摆满了各类技术文件以及图纸,以身作则将技术研发基因带入公司核心运维,强势带动深圳市趣未来(B2GO)科技有限公司一步步成长为…

电赛备赛日记(一):K210与STM32串口通信

拖更了n久的备赛日记终于来啦,最近实现了关于K210图像识别并将所需数据(即目标类别,目标在图像中的加权坐标)其中,加权坐标指K210识别到的目标并框出的框的宽和高与框左上顶点的坐标加权,希望以此来判断目标…