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

大白话跨域问题怎么破,解决方法有啥?

大白话跨域问题怎么破,解决方法有啥?

啥是跨域问题

咱先说说啥是跨域。你可以把每个网站想象成一个独立的小房子,每个房子都有自己的地址(也就是域名)。正常情况下,一个房子里的东西只能在这个房子里用,不能随便跑到别的房子里去。在网页开发里,浏览器有个“同源策略”,就像规定了房子和房子之间不能随便串门。如果一个网页要从它所在的域名去访问另一个域名下的资源,这就相当于要从一个房子跑到另一个房子去拿东西,浏览器就会阻止这种行为,这就是跨域问题。比如说,你在 http://www.example1.com 这个网站的页面里,想访问 http://www.example2.com 网站的接口数据,就会遇到跨域问题。

解决方法

1. JSONP(JSON with Padding)
  • 原理:JSONP 利用了 <script> 标签的 src 属性不受同源策略限制的特点。就好比 <script> 标签有个特殊通行证,可以去别的房子拿东西。服务器返回的数据会被包裹在一个回调函数里,网页通过 <script> 标签请求这个带有回调函数的脚本,拿到数据后就可以在回调函数里处理。
  • 代码示例
    • 服务器端(Node.js + Express)
const express = require('express');
const app = express();app.get('/data', (req, res) => {const callback = req.query.callback;const data = { message: '这是从服务器返回的数据' };const jsonp = `${callback}(${JSON.stringify(data)})`;res.send(jsonp);
});const port = 3000;
app.listen(port, () => {console.log(`服务器运行在端口 ${port}`);
});
- **客户端(HTML + JavaScript)**
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF - 8">
</head><body><script>function handleData(data) {console.log(data.message);}const script = document.createElement('script');script.src = 'http://localhost:3000/data?callback=handleData';document.body.appendChild(script);</script>
</body></html>
  • 优缺点
    • 优点:兼容性好,几乎所有浏览器都支持。
    • 缺点:只支持 GET 请求,安全性较低,容易受到 XSS 攻击。
2. CORS(Cross - Origin Resource Sharing,跨域资源共享)
  • 原理:CORS 是一种现代的跨域解决方案,它是服务器端的一种机制。服务器通过设置响应头,告诉浏览器哪些域名可以访问它的资源,浏览器看到这些响应头后,就会允许跨域请求。就好比房子的主人给某些房子发了邀请函,拿到邀请函的房子里的人就可以来串门了。
  • 代码示例
    • 服务器端(Node.js + Express)
const express = require('express');
const app = express();// 设置 CORS 响应头
app.use((req, res, next) => {res.setHeader('Access - Control - Allow - Origin', '*'); // 允许所有域名访问res.setHeader('Access - Control - Allow - Methods', 'GET, POST, PUT, DELETE');res.setHeader('Access - Control - Allow - Headers', 'Content - Type');next();
});app.get('/data', (req, res) => {const data = { message: '这是从服务器返回的数据' };res.json(data);
});const port = 3000;
app.listen(port, () => {console.log(`服务器运行在端口 ${port}`);
});

客户端(HTML + JavaScript)

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF - 8">
</head><body><script>fetch('http://localhost:3000/data').then(response => response.json()).then(data => console.log(data.message));</script>
</body></html>
  • 优缺点
    • 优点:支持各种 HTTP 请求方法(GET、POST 等),安全性高。
    • 缺点:需要服务器端进行配置,对于一些老旧服务器可能不支持。
3. 代理服务器
  • 原理:代理服务器就像一个中间人。客户端把请求发给代理服务器,代理服务器再把请求转发给目标服务器,拿到目标服务器的响应后,再把响应返回给客户端。因为代理服务器和客户端在同一个域名下,所以不存在跨域问题。就好比你想从另一个房子拿东西,你把请求告诉一个住在你家附近的朋友,这个朋友去帮你从那个房子里把东西拿回来给你。
  • 代码示例(开发环境下使用 Webpack 代理)
    • Webpack 配置文件
const path = require('path');
const webpack = require('webpack');
const { WebpackDevServer } = require('webpack - dev - server');const config = {// 其他配置...devServer: {proxy: {'/api': {target: 'http://localhost:3000', // 目标服务器地址changeOrigin: true,pathRewrite: { '^/api': '' }}}}
};const compiler = webpack(config);
const server = new WebpackDevServer(compiler, config.devServer);
server.listen(8080, 'localhost', () => {console.log('开发服务器运行在端口 8080');
});
- **客户端(HTML + JavaScript)**
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF - 8">
</head><body><script>fetch('/api/data').then(response => response.json()).then(data => console.log(data.message));</script>
</body></html>
  • 优缺点
    • 优点:不需要服务器端进行额外配置,适合开发环境。
    • 缺点:需要搭建代理服务器,增加了系统复杂度。

啥是跨域问题

咱先把跨域问题说明白。你可以把每个网站想象成不同的小区,每个小区都有自己的门禁系统(也就是浏览器的同源策略)。同源策略规定,只有同一个小区(也就是域名、端口、协议都相同)里的住户(页面资源)才能自由交流。要是一个小区的住户想和另一个小区的住户通信,就会被门禁拦住,这就是跨域问题。在前端开发里,当你用 React 或者 Vue 3 写的页面想去请求另一个域名下的接口数据时,就会遇到这种情况。

React 框架跨域问题及解决办法

开发环境下用代理服务器解决
  • 原理:在开发的时候,就好比你请了一个跑腿小哥。你把请求交给这个小哥,小哥拿着你的请求去另一个小区(目标服务器)帮你办事,然后把结果带回来给你。因为小哥是你们小区(本地开发服务器)的人,所以能顺利进出,这样就绕过了门禁(同源策略)。
  • 操作步骤
    • 如果你用 create - react - app 创建的项目,在 package.json 文件里加一行配置。比如目标服务器地址是 http://api.example.com ,就在 package.json 里加上 "proxy": "http://api.example.com" 。这就相当于告诉跑腿小哥他要去的地方。
    • 在 React 代码里发请求。比如你要请求 http://api.example.com/api/data 这个接口,代码里就写 fetch('/api/data') 。因为有了前面的配置,开发服务器会自动把这个请求转发到目标服务器。
import React, { useEffect } from'react';function App() {useEffect(() => {async function getData() {try {const response = await fetch('/api/data');const data = await response.json();console.log(data);} catch (error) {console.error('请求出错啦:', error);}}getData();}, []);return (<div><h1>React 跨域请求示例</h1></div>);
}export default App;
生产环境用 CORS 解决
  • 原理:到了正式上线的生产环境,就不能用跑腿小哥了。这时候得让另一个小区(目标服务器)的门卫(服务器)给你发个通行证。服务器通过设置一些特殊的响应头,告诉浏览器你的小区(域名)可以访问它的资源。
  • 操作步骤
    • 服务器端设置。假设目标服务器用 Node.js 和 Express 搭建,在代码里加上下面这些设置:
const express = require('express');
const app = express();// 设置允许访问的域名
app.use((req, res, next) => {res.setHeader('Access - Control - Allow - Origin', 'http://your - react - app.com'); res.setHeader('Access - Control - Allow - Methods', 'GET, POST, PUT, DELETE');res.setHeader('Access - Control - Allow - Headers', 'Content - Type');next();
});app.get('/api/data', (req, res) => {const data = { message: '这是服务器返回的数据' };res.json(data);
});const port = 3000;
app.listen(port, () => {console.log('服务器在端口 3000 运行');
});
- 在 React 代码里正常发请求就行。
import React, { useEffect } from'react';function App() {useEffect(() => {async function getData() {try {const response = await fetch('http://api.example.com/api/data');const data = await response.json();console.log(data);} catch (error) {console.error('请求出错啦:', error);}}getData();}, []);return (<div><h1>React 跨域请求示例</h1></div>);
}export default App;

Vue 3 框架跨域问题及解决办法

开发环境用代理服务器解决
  • 原理:和 React 开发环境一样,也是请个跑腿小哥。Vue 3 一般用 Vue CLI 来开发,Vue CLI 的开发服务器能充当这个跑腿小哥。
  • 操作步骤
    • vue.config.js 文件里配置代理。比如目标服务器是 http://api.example.com ,文件内容可以这样写:
module.exports = {devServer: {proxy: {'/api': {target: 'http://api.example.com',changeOrigin: true,pathRewrite: { '^/api': '' }}}}
};
这里的 `/api` 是你本地请求的前缀,`target` 是目标服务器地址,`changeOrigin` 表示是否改变请求的源,`pathRewrite` 是对请求路径进行重写。
- 在 Vue 3 组件里发请求。
<template><div><h1>Vue 3 跨域请求示例</h1></div>
</template><script setup>
import { onMounted } from 'vue';onMounted(async () => {try {const response = await fetch('/api/data');const data = await response.json();console.log(data);} catch (error) {console.error('请求出错啦:', error);}
});
</script>
生产环境用 CORS 解决
  • 原理:同样是让目标服务器的门卫发通行证。
  • 操作步骤
    • 服务器端设置和前面 React 生产环境的服务器设置一样。
    • 在 Vue 3 组件里正常发请求。
<template><div><h1>Vue 3 跨域请求示例</h1></div>
</template><script setup>
import { onMounted } from 'vue';onMounted(async () => {try {const response = await fetch('http://api.example.com/api/data');const data = await response.json();console.log(data);} catch (error) {console.error('请求出错啦:', error);}
});
</script>

相关文章:

大白话跨域问题怎么破,解决方法有啥?

大白话跨域问题怎么破&#xff0c;解决方法有啥&#xff1f; 啥是跨域问题 咱先说说啥是跨域。你可以把每个网站想象成一个独立的小房子&#xff0c;每个房子都有自己的地址&#xff08;也就是域名&#xff09;。正常情况下&#xff0c;一个房子里的东西只能在这个房子里用&a…...

DeepSeek R1满血+火山引擎详细教程

DeepSeek R1满血火山引擎详细教程 一、安装Cherry Studio。 Cherry Studio AI 是一款强大的多模型 AI 助手,支持 iOS、macOS 和 Windows 平台。可以快速切换多个先进的 LLM 模型,提升工作学习效率。下载地址 https://cherry-ai.com/ 认准官网&#xff0c;无强制注册。 这…...

Pytorch中的ebmedding到底怎么理解?

在 PyTorch 中&#xff0c;nn.Embedding 是一个用于处理离散符号映射到连续向量空间的模块。它通常用于自然语言处理&#xff08;NLP&#xff09;任务&#xff08;如词嵌入&#xff09;、处理分类特征&#xff0c;或任何需要将离散索引转换为密集向量的场景。 核心理解 功能&am…...

【JAVA面试题】什么是面向对象?谈谈你对面向对象的理解。

【JAVA面试题】什么是面向对象&#xff1f;谈谈你对面向对象的理解 在 Java 面试中&#xff0c;面向对象 是一个高频考点。它不仅是一种编程思想&#xff0c;更是现代软件开发的核心方法论。本文将从 面向对象的概念、与面向过程的对比、以及 面向对象的三大特性&#xff08;封…...

【C】链式二叉树算法题1 -- 单值二叉树

leetcode链接https://leetcode.cn/problems/univalued-binary-tree/description/ 1 题目描述 如果二叉树每个节点都具有相同的值&#xff0c;那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时&#xff0c;才返回 true&#xff1b;否则返回 false。 示例 1&#xff1…...

基于单片机的GPS定位系统设计

1 系统硬件 1.1单片机模块 单片机的种类和型号可以说是有成百上千种&#xff0c;很多大的公司和企业都生产开发自己的单片机芯片&#xff0c;并且广泛应用于各种产品。Intel、 philips、 摩托罗拉、凌阳、宏晶等等种类繁多。大体上可以分为51系列单片机和非51系列单片机。 其…...

[React]Render Props、自定义Hooks和Context API优化详解

关于React中的Render Props、自定义Hooks和Context API优化的详解。我需要根据我搜索到的资料来综合回答这三个部分。首先&#xff0c;我需要分别理解每个概念的定义、用途以及优化方法。 首先看Render Props。根据Render Props是一种通过传递函数作为prop来共享组件间逻辑的技…...

关于大型语言模型的结构修剪

本文介绍了一种名为 **LLM-Pruner** 的方法&#xff0c;用于对大型语言模型&#xff08;LLMs&#xff09;进行结构化剪枝&#xff0c;以减少模型大小和计算需求&#xff0c;同时保留其多任务解决和语言生成能力。LLM-Pruner 通过依赖检测和重要性估计实现高效剪枝&#xff0c;并…...

【语法】C++中string类中的两个问题及解答

贴主在学习string类时遇到过两个困扰我的问题&#xff0c;今天拿出来给大家分享一下我是如何解决的 一、扩容时capacity的增长问题 在string的capacity()接口中&#xff0c;调用的是这个string对象的容量(可以存多少个有效字符)&#xff0c;而size()是调用的string对象现在有…...

Linux(centOS) 命令提示符格式修改(PS1)

1. 命令提示符的组成 命令提示符&#xff08;PS1&#xff09;通常由以下部分组成&#xff1a; 部分示例说明[ 和 ][...]提示符的开头和结尾&#xff0c;用于视觉分隔。用户名root 或 tianjiajie当前登录的用户。root 是超级用户&#xff0c;普通用户可能是其他名称。分隔用户…...

QwenVL 2.5-本地安装编译布署全教程

开篇 DeepSeek开源后我国又开源了一个震撼大模型,QwenVL2.5,这是一个多模态的模形,它可以认图、识图、更能作图,还能读懂video。 Qwen2.5-VL 的主要特点如下所示: 感知更丰富的世界:Qwen2.5-VL 不仅擅长识别常见物体,如花、鸟、鱼和昆虫,还能够分析图像中的文本、图表…...

Hutool - JWT:轻松玩转 JSON Web Token

各位开发者朋友们&#xff0c;在现代的前后端分离开发模式里&#xff0c;身份验证和授权可是至关重要的环节。JSON Web Token&#xff08;JWT&#xff09;作为一种轻量级的身份验证和授权机制&#xff0c;在很多项目中都得到了广泛应用。它可以在客户端和服务器之间安全地传输信…...

2024年第十五届蓝桥杯大赛软件赛省赛Python大学A组真题解析《更新中》

文章目录 试题A: 拼正方形(本题总分:5 分)解析答案试题B: 召唤数学精灵(本题总分:5 分)解析答案试题C: 数字诗意解析答案试题D:回文数组试题A: 拼正方形(本题总分:5 分) 【问题描述】 小蓝正在玩拼图游戏,他有7385137888721 个2 2 的方块和10470245 个1 1 的方块,他需…...

【2025年2月28日稳定版】小米路由器4C刷机Immortalwrt 23.05.4系统搭载mentohust 0.3.1插件全记录

小米路由器4C刷机Immortalwrt系统搭载mentohust插件全记录 首先将路由器按住后面的reset&#xff0c;用一个针插进去然后等待5s左右&#xff0c;松开&#xff0c;即可重置路由器。 然后要用物理网线物理连接路由器Lan口和电脑&#xff0c;并将路由器WAN口连接至网口。确保电脑…...

W3C标准和ES规范之一文通

W3C标准和ES规范之一文通 以下是关于W3C标准和ES规范的透彻解析&#xff0c;通过结构化对比和生活化类比帮助理解和记忆&#xff1a; 一、核心概念对比&#xff08;总览&#xff09; 维度W3C标准ES规范&#xff08;ECMAScript&#xff09;定位Web技术的建筑蓝图JavaScript的语…...

Linux:应用层协议

协议是一种 "约定". socket api的接口, 在读写数据时, 都是按 "字符串" 的方式来发送接收的. 如果我们要传输一些"结构化的数据" 怎么办呢? 无论我们采用什么方案, 只要保证, 一端发送时构造的数据, 在另一端能够正确的进行解析, 就是ok的. 这种…...

深度学习五大模型:CNN、Transformer、BERT、RNN、GAN详细解析

# 深度学习五虎将&#xff1a;当CNN遇见Transformer的奇幻漂流 ## 序章&#xff1a;AI江湖的兵器谱排行 2012年&#xff0c;多伦多大学的厨房里&#xff0c;Hinton的学生们用GPU煎了个"AlexNet"荷包蛋&#xff0c;从此开启了深度学习的热兵器时代。如今五大模型各显…...

微服务组件详解——sentinel

1.启动sentinel&#xff1a; 下载jar sentinel-dashboard-1.8.0.jar 使用以下命令直接运行 jar 包&#xff08;JDK 版本必须≥ 1.8&#xff09;&#xff1a; java -Dserver.port9999 -jar D:\sentinel-dashboard-1.8.0.jar 控制台访问地址&#xff1a;http://localhost:9999…...

波导阵列天线 学习笔记11双极化全金属垂直公共馈电平板波导槽阵列天线

摘要&#xff1a; 本communicaition提出了一种双极化全金属垂直公共馈电平板波导槽阵列天线。最初提出了一种公共馈电的单层槽平板波导来实现双极化阵列。此设计消除了传统背腔公共馈电的复杂腔体边缘的必要性&#xff0c;提供了一种更简单的天线结构。在2x2子阵列种发展了宽十…...

swift 开发效率提升工具

安装github copliot for xcode github/CopilotForXcode brew install --cask github-copilot-for-xcode安装swiftformat for xcode brew install swiftformatXcode Swift File代码格式化-SwiftFormat...

3-5 WPS JS宏 工作表的移动与复制学习笔记

************************************************************************************************************** 点击进入 -我要自学网-国内领先的专业视频教程学习网站 *******************************************************************************************…...

Centos7部署k8s(单master节点安装)

单master节点部署k8s集群(Centos) 一、安装前准备 1、修改主机名 按照资源准备修改即可 # master01 hostnamectl set-hostname master01 ; bash # node1 hostnamectl set-hostname node1 ; bash # node2 hostnamectl set-hostname node2 ; bash2、修改hosts文件 以下命令所…...

Tomcat

1.Tomcat是什么&#xff1f; Tomcat 是一个开源的、轻量级的 Servlet 容器&#xff0c;也被称为 Web 服务器&#xff0c;由 Apache 软件基金会的 Jakarta 项目开发&#xff0c;在 Java Web 开发领域应用广泛。 1&#xff09;Servlet 容器&#xff1a;Servlet 是 Java 语言编写…...

基于SpringBoot+Vue的电影订票及评论网站的设计与实现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

地基简识Spring MVC 组件

Spring MVC 是一个基于 MVC 设计模式的框架&#xff0c;其核心组件协同工作以处理 HTTP 请求并生成响应。以下是各组件的详细说明及其协作流程&#xff1a; 一、​核心组件 ​DispatcherServlet&#xff08;前端控制器&#xff09;​ ​作用&#xff1a;接收所有请求并协调其他…...

如何通过Python网络爬虫技术应对复杂的反爬机制?

要使用Python网络爬虫技术绕过复杂的反爬虫机制&#xff0c;可以采取以下几种策略&#xff1a; 设置User-Agent&#xff1a;通过设置不同的User-Agent&#xff0c;模拟正常用户的浏览器访问&#xff0c;避免被网站识别为爬虫。可以使用fake_useragent库来随机生成User-Agent。…...

深入浅出:Spring AI 集成 DeepSeek 构建智能应用

Spring AI 作为 Java 生态中备受瞩目的 AI 应用开发框架&#xff0c;凭借其简洁的 API 设计和强大的功能&#xff0c;为开发者提供了构建智能应用的强大工具。与此同时&#xff0c;DeepSeek 作为领先的 AI 模型服务提供商&#xff0c;在自然语言处理、计算机视觉等领域展现了卓…...

Node.js二:第一个Node.js应用

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 创建的时候我们需要用到VS code编写代码 我们先了解下 Node.js 应用是由哪几部分组成的&#xff1a; 1.引入 required 模块&#xff1a;我们可以使用 requi…...

【HarmonyOS Next】鸿蒙状态管理装饰器V1和V2混用方案

【HarmonyOS Next】鸿蒙状态管理装饰器V1和V2混用方案 一、V1和V2为什么需要混用 自从api7开始&#xff0c;一直到api10。V1的实际使用中&#xff0c;开发人员发现Observed和ObjectLink 监听实现多层级嵌套对象的更新的方案&#xff0c;太过于臃肿。当需要监听处理更新的多层…...

【技海登峰】Kafka漫谈系列(三)详解Kafka的数据结构与存储机制

【技海登峰】Kafka漫谈系列(三)详解Kafka的数据结构与存储机制 Kafka 使用消息日志(Log)机制来持久化保存数据,我们知道Kafka实际是以Partition分区为单位进行负载均衡和资源分配,每个Partition又由多个Replica副本组成,副本之间分布于不同的Broker上来保证高可用,因此…...

PyCharm接入本地部署DeepSeek 实现AI编程!【支持windows与linux】

今天尝试在pycharm上接入了本地部署的deepseek&#xff0c;实现了AI编程&#xff0c;体验还是很棒的。下面详细叙述整个安装过程。 本次搭建的框架组合是 DeepSeek-r1:1.5b/7b Pycharm专业版或者社区版 Proxy AI&#xff08;CodeGPT&#xff09; 首先了解不同版本的deepsee…...

腾讯云扩容记录

腾讯云扩容&#xff1a; sudo yum install -y cloud-utils-growpart 安装扩容工具 sudo file -s /dev/vda1 有数据 sudo LC_ALLen_US.UTF-8 growpart /dev/vda 1 sudo resize2fs /dev/vda1 df -Th 完毕 以下是对执行的命令的详细解释以及背后的原理&#xff1a; 1. 安装 cloud…...

计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型音乐推荐系统 音乐数据分析 音乐可视化 音乐爬虫 知识图谱 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

本地部署大语言模型-DeepSeek

DeepSeek 是国内顶尖 AI 团队「深度求索」开发的多模态大模型&#xff0c;具备数学推理、代码生成等深度能力&#xff0c;堪称"AI界的六边形战士"。 Hostease AMD 9950X/96G/3.84T NVMe/1G/5IP/RTX4090 GPU服务器提供多种计费模式。 DeepSeek-R1-32B配置 配置项 规…...

Windows逆向工程入门之MASM数据结构使用

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 第一章&#xff1a;MASM数据定义体系精要 1.1 基础数据类型全景 1.1.1 整型数据规范 1.1.2 浮点数据编码 1.2 复合数据结构 1.2.1 多维数组定义 1.2.2 复杂结构体 第二章&#xf…...

python 之协程笔记

协程 协程的本质是用户态线程&#xff0c;由程序自行控制切换时机&#xff0c;无需操作系统介入。与线程相比&#xff0c;协程的三大核心优势&#xff1a; 资源占用极低&#xff1a;一个协程仅需KB级内存&#xff0c;可轻松创建数万个切换效率惊人&#xff1a;上下文切换在用户…...

使用 REINFORCE 算法强化梯度策略

一、整体概述 此代码利用 REINFORCE 算法&#xff08;一种基于策略梯度的强化学习算法&#xff09;来解决 OpenAI Gym 中的 CartPole-v1 环境问题。CartPole-v1 环境的任务是控制一个小车&#xff0c;使连接在小车上的杆子保持平衡。代码通过构建一个神经网络作为策略网络&…...

【C++并发编程实战】第1章 你好,C++的并发世界!

文章目录 1. 何谓并发2. 为什么使用并发&#xff1f;3. 什么时候不使用并发4. C多线程历史5. 第一个并发程序 1. 何谓并发 最简单和最基本的并发,是指两个或更多独立的活动同时发生。计算机领域的并发指的是在单个系统里同时执行多个独立的任务&#xff0c;而非顺序的进行一些…...

【QT线程】子线程阻塞主线程的一次网络api请求案例

阻塞源码赏析 这是最近一次项目遇到的问题&#xff0c;原因是我觉得子线程里俩次请求间隔太短了&#xff0c;会引起服务器屏蔽我的api因此&#xff0c;我故作聪明加多了一个延时函数&#xff0c;欢迎各位鉴赏代码。 // 并行发起双请求 QNetworkRequest liveRequest(liveUrl);…...

DockerでOracle Database 23ai FreeをセットアップしMAX_STRING_SIZEを拡張する手順

DockerでOracle Database 23ai FreeをセットアップしMAX_STRING_SIZEを拡張する手順 はじめに環境準備ディレクトリ作成Dockerコンテナ起動 データベース設定変更コンテナ内でSQL*Plus起動PDB操作と文字列サイズ拡張設定検証 管理者ユーザー作成注意事項まとめ 中文版请访问这里…...

【计算机网络入门】初学计算机网络(五)

目录 1.编码&解码、调制&解调 2.常用编码方法 2.1 不归零编码&#xff08;NRZ&#xff09; 2.2 归零编码(RZ) 2.3 反向非归零编码(NRZI) 2.4 曼彻斯特编码 2.5 差分曼彻斯特编码 3. 各种编码的特点 4.调制 5.有线传输介质 5.1 双绞线 5.2 同轴电缆 5.3 光…...

unity学习60: 滑动条 和 滚动条 滚动区域

目录 1 滚动条 scrollbar 1.1 创建滚动条 1.2 scrollbar的子物体 1.3 scrollbar的属性 2 滚动视图 scroll View 2.1 创建1个scroll View 2.1.1 实际类比&#xff0c;网页就是一个 scroll view吧 2.2 子物体构成 2.3 核心component : Scroll Rect 3 可视区域 view p…...

【Linux网络-HTTP协议】HTTP基础概念+构建HTTP

代码定位&#xff1a;南毅c/Linux - Gitee.com HTTP协议 介绍 虽然我们说&#xff0c;应用层协议是我们程序猿自己定的.但实际上,已经有大佬们定义了一些现成的,又非常好用的应用层协议,供我们直接参考使用。HTTP(超文本传输协议)就是其中之一。 在互联网世界中&#xff0c…...

2025年企业网络安全实战指南:常见漏洞解析与全方位防御策略

2025年企业网络安全实战指南:常见漏洞解析与全方位防御策略 作者: 网络安全专家 日期: 2025-02-27 分类: [网络安全] 标签: [漏洞防护, 信息安全, 企业安全] 引言:漏洞是攻击者的入口,防御是安全的基石 2025年,网络安全威胁持续升级。根据Gartner最新报告,全球企业因漏洞…...

一个py文件搞定mysql查询+Json转换+表数据提取+根据数据条件生成excel文件+打包运行一条龙

import os import argparse import pymssql import json import pandas as pd from datetime import datetime from pandas.io.formats.excel import ExcelFormatter import openpyxl# 投注类型映射字典 BET_MAPPING {1: WIN, 2: PLA, 3: QIN, 4: QPL,5: DBL, 6: TCE, 7: QTT,…...

P1123 取数游戏

题目描述 一个 NM 的由非负整数构成的数字矩阵&#xff0c;你需要在其中取出若干个数字&#xff0c;使得取出的任意两个数字不相邻&#xff08;若一个数字在另外一个数字相邻 8 个格子中的一个即认为这两个数字相邻&#xff09;&#xff0c;求取出数字和最大是多少。 输入格式…...

Spock框架:让单元测试更优雅的高效武器

&#x1f4d6; 前言&#xff1a;为什么选择Spock&#xff1f; 在软件开发领域&#xff0c;单元测试是保证代码质量的基石。但传统的JUnit/TestNG测试框架在面对复杂测试场景时&#xff0c;往往会显得力不从心。Spock框架作为新一代测试框架的佼佼者&#xff0c;以其独特的BDD&…...

STM32中的ADC

目录 一&#xff1a;什么是ADC 二&#xff1a;ADC的用途 三&#xff1a;STM32F103ZET6的ADC 3.1ADC对应的引脚 3.2ADC时钟 3.3ADC的工作模式 ​编辑3.4ADC校准 3.5ADC转换结构和实际电压的换算 四&#xff1a;ADC配置步骤 五&#xff1a;两个重要的函数 一&#xff1a…...

React Portals深度解析:突破组件层级的渲染艺术

React Portals的核心概念、使用场景、实现方法、优缺点以及最佳实践。根据我搜索到的资料,都详细讨论了Portals的使用方法、应用场景和注意事项。比如提供了代码示例,说明如何用createPortal将组件渲染到DOM的其他位置,而则强调了Portals在解决z-index和overflow问题上的优势…...

AWS SQS跨账户访问失败排查指南

引言 在使用AWS SQS(Simple Queue Service)时,跨账户访问是常见的业务场景。例如,账户A的应用程序向队列发送消息,账户B的消费者从队列拉取消息。尽管AWS官方文档明确支持此类配置,但在实际应用中,由于权限模型的复杂性,开发者和运维人员常会遇到“策略已配置但无法接…...