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

vue跨域问题总结笔记

目录

一、Websocket跨域问题

1.nginx配置

2.VUE CLI代理

3.env.development配置

4.nginx日志

5.解决

一、解决跨域的几种常用方法

1.Vue CLI代理

2.JSONP

3.WebSocket

4.NGINX解决跨域问题

6.Java解决跨域

二、Vue跨域问题详解

1. 什么是跨域

2. 跨域的例子

3. 配置代理解决跨域问题

4. 如何配置代理


一、Websocket跨域问题

1.nginx配置

server {listen       8004;server_name  192.168.80.4;client_max_body_size 10M;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;server_tokens off;proxy_buffering      on;proxy_buffer_size    1024k;proxy_buffers 100    1024k;proxy_busy_buffers_size    2048k;location / {root   im-web;index  index.html index.htm;}# IM 接口location /imapi/ {proxy_pass http://192.168.80.4:8888/;}# WebSocketlocation /im/ {proxy_pass http://192.168.80.4:8878/;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}
}

2.VUE CLI代理

module.exports = {devServer: {proxy: {'/imapi': {target: 'http://192.168.80.4:8004/imapi',changeOrigin: true,ws: false,pathRewrite: {'^/imapi': ''}},'/im': {target: 'http://192.168.80.4:8004/im',changeOrigin: true,ws: true,pathRewrite: {'^/im': ''}}}}
};

3.env.development配置

# 接口请求地址
VUE_APP_BASE_API = '/imapi'# ws地址
VUE_APP_WS_URL = 'ws://192.168.80.4:8004/im'

本地启动前端vue,端口是8080,访问服务器上的服务,通过nginx代理,可以登录,登录后提示websocket无法连接,ws一直处于连接中

4.nginx日志

5.解决

ngixn日志获取的ws地址是"GET /im HTTP/1.1",可知道。im后面没带斜杠/,所以location的路径也要不到斜杠,转发的地址后面也不要带斜杠,负负得正,

# WebSocket
location /im {proxy_pass http://192.168.80.4:8878;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";
}

实际请求地址http://192.168.80.4:8878/im

WebSocket 在线测试:http://www.websocket-test.com/

一、解决跨域的几种常用方法

1.Vue CLI代理

可以配置一个代理服务器来转发 API 请求,绕过浏览器的同源策略。vue中通过 Vue CLI 的代理,Vue CLI 提供了一个内置的开发服务器(基于 Webpack Dev Server),可以通过配置代理来解决开发环境中的跨域问题,在vue-cli搭建的项目中有一个配置文件vue.config.js,可以在该文件中进行相应的配置解决开发环境的跨域问题。

在 vue.config.js 文件中进行配置,示例如下:

devServer: {// 1.指定服务的iphost: "192.168.0.128",// 2.指定服务的端口port: 3000,open: true,overlay: {warnings: false,errors: true},// 3.开发环境进行http的代理proxy: {// 匹配 url 路径的开头'/api': {// 1.路劲只要是/api开头的url都代理到下面这个网站。// 例如:'/api/xxxx' 会代理到 https://119.20.224.137/api/xxxxtarget: 'http://119.20.224.137:8201',changeOrigin: true,pathRewrite: { '^/api': '/api/' }}}
}

    target: 后端服务器的地址。
    changeOrigin: 设置为 true,代理会将请求的 Origin 改为目标地址,避免 CORS 限制。
    pathRewrite: 如果前端请求路径以 /api 开头,可将其重写为空,避免在后端 URL 中重复。

      对“/api”进行拦截配置,目的是凡是以“/api”开头的请求url都会将url中的“/api”**的前面添加上我们指定的内容。 例如:

      '/api/user/login'     替换成   'http://119.20.224.137:8201/api/user/login'

      在上述的例子中,其实 pathRewrite 也可以不写,例如:

      devServer: {open: true,port: 8080,// headers: {},
      host: "192.168.0.128",disableHostCheck: true,https: true,proxy: {"/gwkf": {  // "/gwky" 是后端的服务名,地址后端以它为开头的target: "http://119.20.224.137:8201", //你需要访问的网址 changeOrigin: true,},// 像这种可以配置多个,后端会有多个服务名的情况// 首先我们需要获取到后端的服务名,就是需要代理的服务名,这个我们可以通过swagger,来找到// 第二点,我们需要找到请求路径,如果是测试环境(开发环境),就用测试环境、生产环境就用生产环境的路径。// 然后就在target里面,添加上域名就可以了// changeOrigin 要为true,意思就是:当进行代理时,Host 的源默认会保留// (即Host是浏览器发过来的host),// 如果将changeOrigin设置为true,则host会变成target的值;在vue-cli3中,// 默认changeOrigin的值是true,意味着host设置成target,这与cue-cli2不一致,// vue-cli2这个默认值是false。"fast-admin": {target: "https://test-analysis.com/",changeOrigin: true,},"fast-service": {target: "https://test-analysis.com/",changeOrigin: true,},"mth-core-service": {target: "https://test-masterdata.com/",changeOrigin: true,},"mth-core-admin": {target: "https://test-masterdata.com/",changeOrigin: true,},"mth-capital-service": {target: "https://test-analysis.com/",changeOrigin: true,}}
      },

      示例:Axios 配置

      import axios from 'axios';const instance = axios.create({baseURL: '/api', // 开发环境代理前缀withCredentials: true, // 支持跨域携带 Cookies
      });instance.get('/users').then(res => console.log(res.data));

      2.JSONP

      如果后端支持 JSONP 跨域请求,可以使用 Vue 中的 JSONP 库(如 vue-jsonp)来发送跨域请求。

      JSONP不推荐JSONP 是一种老旧的跨域解决方案,仅支持 GET 请求,且安全性较低。Vue 项目中一般不建议使用,除非后端仅支持 JSONP。

      3.WebSocket

      如果需要在 Vue 中与支持 WebSocket 的服务器进行跨域通信,可以使用 WebSocket API 进行连接和通信。WebSocket 不受同源策略的限制。

      4.NGINX解决跨域问题

      NGINX 解决跨域问题(CORS,Cross-Origin Resource Sharing)通常通过配置响应头来实现。以下是具体步骤和配置示例:

      1. 理解跨域问题

      跨域问题是由于浏览器的同源策略(Same-Origin Policy)导致的,当前端页面(如 http://a.com)请求不同域名(如 http://b.com)的资源时,浏览器会限制响应,除非服务器明确允许。

      2. NGINX 配置解决跨域

      在 NGINX 中,可以通过添加 Access-Control-Allow-* 响应头来解决跨域问题。以下是一个常见的配置方法:

      server {listen 80;server_name your_domain.com;location / {# 允许的来源(如前端域名),* 表示允许所有来源add_header 'Access-Control-Allow-Origin' '*' always;# 允许的请求方法add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;# 允许的请求头add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization' always;# 允许携带凭证(如 Cookies)add_header 'Access-Control-Allow-Credentials' 'true' always;# 预检请求(OPTIONS)的缓存时间add_header 'Access-Control-Max-Age' 1728000 always;# 处理 OPTIONS 预检请求if ($request_method = 'OPTIONS') {return 204;}# 你的其他配置,如 proxy_pass 或 root# 示例:反向代理到后端proxy_pass http://backend_server;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
      }

      配置说明

      Access-Control-Allow-Origin: 指定允许的来源域名,* 表示所有域名(生产环境建议指定具体域名以提高安全性)。

      Access-Control-Allow-Methods: 指定允许的 HTTP 方法。

      Access-Control- Allow-Methods : 指定允许的 HTTP 方法。

      Access-Control-Allow-Headers: 指定允许的请求头。

      Access-Control-Allow-Credentials: 如果需要支持 Cookies 或认证信息,设为 true(此时 Access-Control-Allow-Origin 不能为 *)。

      Access-Control-Max-Age: 预检请求的缓存时间,单位为秒。

      处理 OPTIONS 请求: 浏览器在发送复杂请求(如带自定义头或非 GET/POST 请求)前会发送一个 OPTIONS 预检请求,NGINX 需要返回 204 状态码。

      3. 注意事项

      安全性: 避免盲目使用 *,建议明确指定允许的域名(如 http://frontend.com)。

      Credentials 与 Origin: 如果设置了 Access-Control-Allow-Credentials: true,则 Access-Control-Allow-Origin 必须是具体域名,不能是 *。

      Credentials 与 Origin: 如果设置了 Access-Control-Allow-Credentials: true,则 Access-Control-Allow-Origin 必须是具体域名,不能是*。

      测试: 配置后,使用浏览器的开发者工具(Network 面板)检查响应头,确保 CORS 头正确返回。

      重启 NGINX: 修改配置后,运行 nginx -s reload 重载配置。

      4. 验证配置

      使用 curl 测试:

      curl -I -X OPTIONS http://your_domain.com/api

      检查响应头是否包含 Access-Control-Allow-*。

      浏览器测试:打开前端页面,检查是否有 CORS 错误。

      6.Java解决跨域

      import org.springframework.web.bind.annotation.CrossOrigin;
      import org.springframework.web.bind.annotation.GetMapping;
      import org.springframework.web.bind.annotation.RestController;@RestController
      @CrossOrigin(origins = "http://frontend.com")
      public class Controller {@GetMapping("/users")public String getUsers() {return "Users";}
      }

      参考:

      vue跨域解决的几种方案【建议收藏】_vue跨域解决方案-CSDN博客

      vue解决跨域问题的几种常用方法(CORS)_vue.js_脚本之家

      二、Vue跨域问题详解

      1. 什么是跨域

      跨域问题是由于浏览器的同源策略(Same-Origin Policy)所导致的,同源策略是浏览器的一种安全机制,限制一个域的网页与另一个域的资源进行交互,即限制了一个源(协议、域名、端口)下的文档或脚本与另一个源的资源进行交互,也就是浏览器向不同源(不用协议、不用域名、不同端口)发送ajax请求会失败。

      2. 跨域的例子

      比如,我们启动的项目,启动了两个服务:

      前端端口是5173

      后端端口是8080

      当浏览器启动后,会先发送请求,到前端服务,比如得到一个登录页面,这个登录页面所在的源,就是http://localhost:5173,在登录页面里,嵌套了一段js代码,里面有一个登录按钮,当用户点击登录按钮时,会发送请求到后端服务http://localhost:8080,此时ajax请求所在的源是5173,但它请求的目标是8080,这个时候,属于不同的源,由于浏览器的同源策略限制,该请求会发送失败,这种就是跨域问题。

      3. 配置代理解决跨域问题

      配置代理后,请求就不会从5173直接发向8080,当点击登录按钮,发送异步请求时,会先把请求发向前端服务5173,此时异步请求所在的源就是5173,所以就不会出现跨域问题,再由前端服务5173,转发到后端服务8080,也就是说,该请求是由服务端发起的,就没有跨域问题了。

      4. 如何配置代理

      首先在utils中的请求工具request.js里,把写固定的路径修改一下。

      utils中的请求工具request.js

      示例代码如下:

      //这里边相当于请求的工具,用来定制请求的实例//导入axios npm install axios
      import axios from 'axios';//导入Message消息提示
      import { ElMessage } from 'element-plus';//定义一个变量,记录公共的前缀,baseURL
      // const baseURL = 'http://localhost:8080';// 这里的'/api'只是给后台访问的请求路径添加一个标识
      const baseURL = '/api';/*  axios.create()方法,把baseURL作为参数传入,该方法返回一个请求的实例instance,以后发送请求时,就不用axios.get了,直接用instance.get就可以 */
      const instance = axios.create({baseURL})/* axios提供的拦截器,在请求或响应,被then或catch处理前拦截也就是在请求发出之前,有一个请求拦截器或在响应到达之前,有一个响应拦截器 *///添加响应拦截器(这个拦截器本身就是异步的)
      instance.interceptors.response.use(//成功的回调result=>{//判断业务状态码if(result.data.code === 0){return result.data;}//操作失败ElMessage.error(result.data.msg?result.data.msg:'服务异常');//异步操作的状态转换为失败return Promise.reject(result.data);},//失败的回调err=>{alert('服务异常');//异步的状态转化成失败的状态return Promise.reject(err);}
      )//把请求的实例instance导出,供其他地方调用
      export default instance;

       上述代码中,只是把const baseURL = ‘http://localhost:8080’;改成了const baseURL = ‘/api’;意思就是,比如以前写的 const baseURL = ‘http://localhost:8080’;现在改成 const baseURL = ‘/api’;这里的 ‘/api’ 其实就是是给后台访问的请求路径添加一个标识,然后在配置代理里,会把这个 ‘/api’ 替换为我们想要的路径,api前边并没有写端口号,就会把当前ajax请求所在的源自动拼进去,就相当于写的http://localhost:5173/api,因为当前ajax代码所处的源,就是刚才页面所处的源http://localhost:5173,所以当用户点击登录按钮时,请求就发送给5173的这个前端服务,两个源都是5173,所以不会出现跨域,在vite.config.js配置信息里边,添加 ‘/api’ 的对应配置

      这里的配置,才是真正配置代理的,这里才是配置请求路径和端口号的地方。

      示例代码:

      //这里边写的是vue项目的配置信息,如端口号等import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'
      import vue from '@vitejs/plugin-vue'
      import vueDevTools from 'vite-plugin-vue-devtools'// https://vite.dev/config/
      export default defineConfig({plugins: [vue(),vueDevTools(),],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))},},//server:代表是要做服务相关的配置server: {//proxy: 指的是要配置一些代理proxy: {//这里的'/api'是指:请求路径中,是否有带/api这部分的路径,如果有/api,就对其进行处理'/api': { //获取路径中包含了/api的请求//target:指的是,如果要更换源,要更换成谁,就写谁,这里写的是后台服务所在的源target: 'http://localhost:8080',//changeOrigin:指的是,是否要更换换源changeOrigin: true,// rewrite:是路径的重写,这里把/api替换为''rewrite: (path) => path.replace(/^\/api/, '')}}}
      })

      为了更好的理解上边的配置,举个例子:比如发送异步请求,路径是http://localhost:5173/api/user/register,这个路径中,有 /api,配置信息里的 changeOrigin: true,就会更改源,把源改为target的 ‘http://localhost:8080’,改完后就变成了http://localhost:8080/api/user/register,就是把 /api 前边的路径给换了,同时,rewrite重写路径,把 /api重写成空字符串,最后,路径就是这样的http://localhost:8080/user/register。

      原文链接:Vue如何处理浏览器跨域问题_vue跨域问题的三种解决方案-CSDN博客

      相关文章:

      vue跨域问题总结笔记

      目录 一、Websocket跨域问题 1.nginx配置 2.VUE CLI代理 3.env.development配置 4.nginx日志 5.解决 一、解决跨域的几种常用方法 1.Vue CLI代理 2.JSONP 3.WebSocket 4.NGINX解决跨域问题 6.Java解决跨域 二、Vue跨域问题详解 1. 什么是跨域 2. 跨域的例子 3.…...

      自动驾驶领域专业词汇(专业术语)整理

      以下是分类整理的自动驾驶领域专业词汇表,涵盖 AI、芯片、传感器、自动驾驶核心、辅助驾驶、安全、通信、车灯、泊车、测试标准 等类别: AI相关 缩写英文全称中文解释AIArtificial Intelligence人工智能,模拟人类智能的技术体系NNNeural Ne…...

      说一下react更新的流程

      beginWork 使用v-dom和current fiber去生成子节点的workInProgress Fiber 期间会执行函数组件、类组件、diff子节点 给我需要变更的节点,打赏effectTag 增placement 2 0010 删deletion 8 1000 改 update 4 0100 增和改 placementAndUpdate…...

      C 语言函数指针与指针函数详解

      一、引言 在 C 语言的编程世界中,函数指针和指针函数是两个既强大又容易混淆的概念。它们为 C 语言带来了更高的灵活性和可扩展性,广泛应用于回调函数、动态链接库、状态机等多种场景。深入理解和掌握函数指针与指针函数,对于提升 C 语言编程…...

      政策支持与市场驱动:充电桩可持续发展的双轮引擎

      随着全球能源转型加速,新能源汽车成为实现低碳交通的重要方向。然而,充电基础设施不足仍是制约其普及的关键瓶颈。当前,国际主流的充电桩运营模式包括政府推动、电网企业推动及汽车厂商推动三种模式,但单一模式均存在显著局限性。…...

      在 Ubuntu 22.04 x64 系统安装/卸载 1Panel 面板

      一、 1Panel 是什么? 1Panel 是一款基于 Go 语言开发的现代化开源服务器管理面板(类似宝塔面板),专注于容器化(Docker)和云原生环境管理,提供可视化界面简化服务器运维操作。 1. 1Panel主要功…...

      dummy cli-tool ubuntu22.04使用

      项目场景:dummy cli-tool ubuntu22.04使用 提示:这里简述项目相关背景:执行python3 run_shell.py时报错 例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大) …...

      厚铜板的镀前处理差异:工艺参数与成本影响

      在现代电子设备中,厚铜电路板因其优异的导电性能和良好的热管理能力而备受青睐。生产过程中,对铜层进行电镀加厚是一个关键步骤,它涉及到一系列复杂的化学和物理过程。在进行电镀之前,必须对电路板进行适当的准备工作,…...

      【C到Java的深度跃迁:从指针到对象,从过程到生态】第四模块·Java特性专精 —— 第十六章 多线程:从pthread到JMM的升维

      一、并发编程的范式革命 1.1 C多线程的刀耕火种 C语言通过POSIX线程&#xff08;pthread&#xff09;实现并发&#xff0c;需要开发者直面底层细节&#xff1a; 典型pthread实现&#xff1a; #include <pthread.h> int counter 0; pthread_mutex_t lock PTHREAD…...

      数据库学习笔记(十三)---存储过程

      前言&#xff1a; 学习和使用数据库可以说是程序员必须具备能力&#xff0c;这里将更新关于MYSQL的使用讲解&#xff0c;大概应该会更新30篇&#xff0c;涵盖入门、进阶、高级(一些原理分析);这一篇存储过程&#xff0c;下一篇是存储函数;虽然MYSQL命令很多&#xff0c;但是自…...

      JWT(JSON Web Token)源码分析

      Java - JWT的简单介绍和使用 Java JWT&#xff1a;原理、机制及案例示范 什么是JWT&#xff1f; 1.1 JWT的基本概念 JWT&#xff08;JSON Web Token&#xff09;是一种用于在各方之间传递JSON格式信息的紧凑、URL安全的令牌&#xff08;Token&#xff09;。JWT的主要作用是验…...

      Vue 3 中通过 createApp 创建的 app 实例的所有核心方法,包含完整示例、使用说明及对比表格

      以下是 Vue 3 中通过 createApp 创建的 app 实例的所有核心方法&#xff0c;包含完整示例、使用说明及对比表格&#xff1a; 1. app.component() 作用&#xff1a;注册全局组件 参数&#xff1a; name&#xff1a;组件名称&#xff08;字符串&#xff09;component&#xff…...

      Hadoop 单机模式(Standalone Mode)部署与 WordCount 测试

      通过本次实验&#xff0c;成功搭建了 Hadoop 单机环境并运行了基础 MapReduce 程序&#xff0c;为后续分布式计算学习奠定了基础。 掌握 Hadoop 单机模式的安装与配置方法。 熟悉 Hadoop 环境变量的配置及 Java 依赖管理。 使用 Hadoop 自带的 WordCount 示例程序进行简单的 …...

      线段树合并与分解

      合并 #include <bits/stdc.h> using namespace std; #define asd(i,a,b) for(int ia;i<b;i) #define int long long const int inf 0x3f3f3f3f, N 1e5 5, Z 1e5; int n, m, fa[N], o[N][25], dep[N], tot, root[N], ans[N]; vector<int> g[N]; struct node…...

      驱动开发硬核特训 │ 深度解析 fixed regulator 驱动与 regulator_ops

      一、引言&#xff1a;本次目标 本篇聚焦于&#xff1a; Regulator 子系统基础概念设备树节点与驱动代码的对应关系regulator_desc、regulator_ops、regulator_dev 的完整讲解驱动端的实际注册与管理流程 通过一个实际案例&#xff0c;系统掌握 regulator 子系统 的全貌。 二…...

      Linux中的shell脚本练习

      1.判断字符串是否为空 #!/usr/bin/bash while : #:默认值为真 do read -p "请输入你的密码: " a pass123456 if [ -z $a ];thenecho "您输入的密码不能为空"exit 1 elseif [ $a $pass ];thenecho "登录成功"breakelseecho "您的密码输入有…...

      MySQL基础篇 | 1-数据库概述与MySQL安装

      【MySQL基础篇-1】数据库概述与MySQL安装 1. 数据库概述2. MySQL环境搭建2.1. MySQL的四大版本2.2. 软件下载1. 数据库概述 MySQL官网网站:https://dev.mysql.com/doc/relnotes/mysql/8.0/en/ SQL Server:SQL Server是微软开发的大型商业数据库。C#、.net等语言常使用,与wi…...

      JVM 自动内存管理

      一、运行时数据区域详解 Java 虚拟机在运行 Java 程序时&#xff0c;会将所管理的内存划分为多个不同的数据区域&#xff0c;各区域有着独特的用途、创建和销毁时间。 程序计数器&#xff1a;作为线程私有的较小内存空间&#xff0c;它是当前线程执行字节码的行号指示器。字节…...

      InitializingBean接口和@PostConstruct-笔记

      1. InitializingBean 简介 1.1 功能简介 InitializingBean 是 Spring 框架中的一个接口&#xff0c;用在 Bean 初始化后执行自定义逻辑。它提供了 afterPropertiesSet() 方法&#xff0c;该方法在以下时机被 Spring 容器自动调用&#xff1a; 属性注入完成后&#xff08;即所…...

      考研408-计算机组成原理冲刺考点(1-3章)

      第一章 计算机系统概述 1.计算机核心 早期的冯诺依曼计算机是以运算器为中心的,而现在的计算机是以存储器为中心的 2.五大部件 3.汇编程序、编译程序、解释程序的辨析...

      模板方法模式(Template Method Pattern)

      模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个操作中的算法骨架,将一些步骤的实现延迟到子类中。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。 一、基础 1. 意图 定义一个操作中的算法骨架,将某些步骤延迟到…...

      一文了解无人机系统

      无人机系统&#xff0c;又称无人驾驶航空器系统&#xff08;Remotely Piloted Aircraft System&#xff0c;RPAS&#xff09;&#xff0c;作为一个由无人机平台、遥控站、指令与控制数据链及其他部件构成的完整技术体系&#xff0c;其系统架构包含多个核心分系统。具体而言&…...

      系统架构师2025年论文《论软件的设计模式》

      论软件的设计模式 摘要: 2016 年,我所在的公司承担了某市医院预约挂号系统的研发任务。我作为公司的技术总监,希望能打造基于该系统的系列产品,参与到项目的设计中,以期开发扩展性和可维护性良好的预约挂号系统,为以后的产品开发打下基础。网络靶场是网络安全技术研究的…...

      集成电路流片随笔19:full_handshake

      全双工握手接收模块 (full_handshake_rx)&#xff0c;它的功能是接收来自发送端 (tx) 的数据&#xff0c;并对发送端进行应答&#xff08;ACK&#xff09;。模块实现了基于握手的通信机制&#xff0c;以确保数据的可靠传输。模块的输入输出分别连接于发送端和接收端&#xff0c…...

      Android Framework 探秘

      以下文字来源AI&#xff0c;准确性不敢保证&#xff01; 安卓Framework层概述 安卓的 Framework&#xff08;框架层&#xff09; 是安卓系统的核心组成部分&#xff0c;位于应用层和系统底层&#xff08;如Linux内核&#xff09;之间&#xff0c;负责为应用提供统一的接口和功…...

      亚马逊云科技2025战略解析:AI驱动下的全球生态重塑

      一、战略转向&#xff1a;从“云优先”到“AI优先”的核心逻辑 1. 千亿美元资本投入AI基建 芯片自研突破&#xff1a;2025年资本支出70%投向AI芯片与液冷数据中心。自研芯片矩阵全面升级&#xff0c;包括3纳米工艺的Trainium3&#xff08;算力提升4倍&#xff09;、单核性能…...

      NGINX ngx_http_addition_module 模块响应体前后注入内容

      一、模块概述 模块名称&#xff1a;ngx_http_addition_module引入版本&#xff1a;自 0.7.9 起支持 addition_types&#xff0c;0.8.29 起支持“*”通配&#xff1b;功能&#xff1a;对符合 MIME 类型的响应&#xff0c;在响应体前后分别插入指定子请求 URI 返回的内容&#x…...

      SpringMVC 使用thymeleaf 进行数据展示

      thymeleaf 是前端的视图解析器&#xff0c;可以用于html页面上变量的渲染&#xff0c;如何来使用thymeleaf&#xff0c;下面我们来说一下&#xff1a; 首先引入相关的依赖&#xff1a; <dependency><groupId>org.thymeleaf</groupId><artifactId>thym…...

      Github两种鉴权模式PAT与SSH

      Github两种鉴权模式PAT与SSH 文章目录 Github两种鉴权模式PAT与SSH1. PAT鉴权2. SSH鉴权3.两种鉴权的切换 1. PAT鉴权 通过 HTTPS 协议克隆和推送代码&#xff0c;使用用户名/密码或个人访问令牌&#xff08;PAT&#xff09;鉴权&#xff0c;所以PAT是与HTTPS协议相关的。该鉴…...

      XrayR启动失败

      公司要用服务器之间进行数据加密&#xff0c;这里用的XrayR 我使用的Centos 7。 我这里使用一键脚本安装后&#xff0c;/etc/XrayR目录下没有配置文件。 解决方案 XrayR安装时&#xff0c;系统没有unzip工具&#xff0c;也是会安装失败的&#xff0c;因为Centos7已经停止维…...

      FPGA-数字时钟

      FPGA-数字时钟 总体设计 ​ 用FPGA驱动数码管按照HH-MM-SS的格式显示时间&#xff0c;每秒用串口向上位机发送当前时间&#xff0c;当串口收到HH:MM:SS&#xff0c;对时间进行校准。由于年月要考虑到大小月&#xff0c;闰年等。为了简单起见&#xff0c;只考虑时分秒。 数码管…...

      数据结构 RBT 插入操作的 Python 代码实现

      目录 一、红黑树的性质二、红黑树的插入1. 插入根节点或根节点变红2. 双亲节点 P 为黑色3. 双亲结点 P 和叔伯结点 U 均为红色4. 双亲结点 P 为红色&#xff0c;叔伯结点 U 为黑色或缺失1&#xff09;情形一2&#xff09;情形二 三、插入的 Python 代码实现 红黑树动画演示网站…...

      颖儿生活提案:用海信璀璨505U6真空冰箱重建都市鲜食自由

      热播剧《六姊妹》中&#xff0c;演员颖儿饰演的何家艺以泼辣坚韧的形象深入人心&#xff0c;一双手撑起家庭的"烟火气"&#xff1b;戏外&#xff0c;她平衡事业与家庭&#xff0c;以自律姿态书写鲜活人生。 近日&#xff0c;颖儿向公众展示家中厨房&#xff0c;意外…...

      JQuery 使用技巧

      文章目录 隐藏/显示淡入淡出滑动追加新元素删除元素/内容设置 CSS 样式尺寸遍历Ajax根据 input 控件中的值 实时改变另一个值 $()是jQuery()的简写getElementByTagName();如&#xff1a; $(“div”)getElementByTagName(“div”); $()的作用是用于查找出 HTML 的标签、属性、样…...

      光流法:从传统方法到深度学习方法

      1 光流法简介 光流&#xff08;Optical Flow&#xff09;是指图像中像素灰度值随时间的变化而产生的运动场。 简单来说&#xff0c;它描述了图像中每个像素点的运动速度和方向。 光流法是一种通过分析图像序列中像素灰度值来计算光流的方法。对于图像数据计算出来的光流是一个二…...

      如何选择合适的RFID手持终端设备?

      一、明确核心需求&#xff0c;锁定关键参数 选购RFID手持终端的首要任务是明确应用场景的核心需求。若用于仓储物流或零售盘点&#xff0c;推荐选择上海岳冉超高频RFID手持终端设备&#xff0c;支持1-20米远距离批量读取&#xff1b;若用于医疗耗材或图书管理&#xff0c;岳冉高…...

      Axios 传参与 Spring Boot 接收参数完全指南

      Axios 传参与 Spring Boot 接收参数完全指南 本文详细说明前端 Axios 传参与后端 Spring Boot 接收参数的各类场景&#xff0c;包括 GET/POST/PUT/DELETE 请求、路径参数/查询参数/请求体参数 的传递方式&#xff0c;以及如何接收 List、Map 等复杂类型。通过代码示例和对比表…...

      NdrpPointerUnmarshallInternal函数分析之pStubMsg--pAllocAllNodesContext的由来

      第一部分&#xff1a; // // Check if this is an allocate all nodes pointer AND that were // not already in an allocate all nodes context. // if ( ALLOCATE_ALL_NODES(pFormat[1]) && ! pStubMsg->pAllocAllNodesContext …...

      人脑、深思考大模型与其他大模型的区别科普

      文章目录 大模型的基本概念与特点深思考大模型的独特之处深思考大模型与其他大模型的对比架构与技术训练数据应用场景提示词编写 大模型给出答案的方式&#xff1a;基于概率还是真的会分析问题&#xff1f;人脑的思考过程基本单位与网络大脑结构与功能分区信息处理流程思维模式…...

      Unity-粒子系统:萤火虫粒子特效效果及参数

      萤火虫特效由两部分组成。萤火虫粒子底色粒子面片。萤火虫的旋转飞动主要由 Noise参数和Color over Lifetime模块控制。 贴图&#xff1a;中间实周边虚的圆&#xff0c;可随意自行制作 Shader&#xff1a;Universal Render Pipeline/2D/Sprite-Lit-Default 以下是粒子详细参…...

      Java垃圾收集器与内存分配策略深度解析

      在 Java 与 C 的世界里&#xff0c;内存动态分配与垃圾收集技术仿佛筑起了一道高墙。墙外的人渴望进入&#xff0c;享受自动内存管理的便利&#xff1b;而墙内的人却试图突破&#xff0c;追求更高的性能与控制力。今天&#xff0c;就让我们深入探讨 Java 的垃圾收集器与内存分配…...

      优化MySQL性能:主从复制与读写分离实践指南

      目录 一、知识介绍 1.MySQL主从复制原理 2.MySQL读写分离原理 二、资源清单 三、案例实施 1.修改主机名 2.搭建MySQL主从复制 3.搭建MySQL读写分离 一、知识介绍 1.MySQL主从复制原理 MySQL支持的复制类型 基于语句的复制基于行的复制混合模型复制 工作过程 主&#…...

      Foupk3systemX5OS系统产品设备

      Foupk3systemX5OS TXW8&#xff08;基于Foupk3systemX5OS系统19.62正式版开发的智能移动设备由Foupk3systemX5OS系统与FOUPK3云服务平台共同自主研发&#xff09; Foupk3systemX5OS TX6&#xff08;Foupk3systemX5OS TX6基于Foupk3systemX5OS系统19.60正式版开发的智能平板设备…...

      【计网】认识跨域,及其在go中通过注册CORS中间件解决跨域方案,go-zero、gin

      一、跨域&#xff08;CORS&#xff09;是什么&#xff1f; 跨域&#xff0c;指的是浏览器出于安全限制&#xff0c;前端页面在访问不同源&#xff08;协议、域名、端口任一不同&#xff09;的后端接口时&#xff0c;会被浏览器拦截。 比如&#xff1a; 前端地址后端接口地址是…...

      关于 【Spring Boot Configuration Annotation Processor 未配置问题】 的详细分析、解决方案及代码示例

      以下是关于 Spring Boot Configuration Annotation Processor 未配置问题 的详细分析、解决方案及代码示例&#xff1a; 1. 问题描述 当使用 Spring Boot 的配置注解&#xff08;如 ConfigurationProperties、Value、ConditionalOnProperty 等&#xff09;时&#xff0c;若未…...

      MySQL 的ANALYZE与 OPTIMIZE命令

      MySQL 的ANALYZE与 OPTIMIZE命令 一、ANALYZE TABLE - 更新统计信息 1. 基本语法与功能 ANALYZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE tbl_name [, tbl_name] ...作用&#xff1a;收集表统计信息用于优化器生成更优的执行计划&#xff0c;主要更新&#xff1a; 索引基数&am…...

      【机器学习】人工智能在电力电子领域的应用

      摘要&#xff1a; 本文概述了电力电子系统的人工智能 (AI) 应用。设计、控制和维护这三个独特的生命周期阶段与人工智能要解决的一项或多项任务相关&#xff0c;包括优化、分类、回归和数据结构探索。讨论了专家系统、模糊逻辑、元启发法和机器学习四类人工智能的应用。我们对…...

      InferType和_checked_type的区别?

      在 TVM 的 Relay IR 中&#xff0c;relay.frontend.common.infer_shape(node) 和 node.checked_type.shape 都与**形状&#xff08;Shape&#xff09;**信息相关&#xff0c;但它们的用途、实现机制和性能特点有显著区别。以下是详细对比&#xff1a; 1. 功能区别 特性node.ch…...

      Flutter 学习之旅 之 flutter 作为 module ,在 Android 端主动唤起 Flutter 开发的界面 简单的整理

      Flutter 学习之旅 之 flutter 作为 module &#xff0c;在 Android 端主动唤起 Flutter 开发的界面 简单的整理 目录 Flutter 学习之旅 之 flutter 作为 module &#xff0c;在 Android 端主动唤起 Flutter 开发的界面 简单的整理 一、简单介绍 二、Android 端唤起 Flutter …...

      vue3 css模拟语音通话不同语音、正在加载等的效果

      实现效果如下&#xff1a; 在不同的时间&#xff0c;显示不一样的效果&#xff08;大小是一样的&#xff0c;截图时尺寸发生了变化&#xff09; 具体实现代码如下&#xff1a; <script setup> import {ref} from "vue";const max_hight ref(40px) const min…...