【前端】Axios AJAX Fetch
不定期更新,建议关注收藏点赞。
目录
- Axios
- AJAX
- CORS 允许跨域请求
- Fetch
Axios
axios
是一个基于Promise
的 JavaScript HTTP 客户端,用于浏览器和 Node.js 中发送 HTTP 请求。它提供了一个简单的 API 来发起请求,并处理请求的结果。axios
主要用于与服务器进行数据交互,比如发送 GET、POST、PUT、DELETE 请求等。相比于浏览器原生的fetch
API,axios
提供了更多的功能和便利,特别是在处理请求和响应时。
axios.get('/api/todolist')
.then((res)=>{console.log(res.data);this.setState(()=>{return {list: [...res.data]}})
.catch(()=>{alert('error')})
}
- 安装
axios
如果你使用的是 Node.js 或者 React 等项目,首先需要通过 npm
或 yarn
安装 axios
。
# 使用 npm 安装
npm install axios# 使用 yarn 安装
yarn add axios
- 基本用法
axios
提供了多种方法来发送 HTTP 请求,包括 axios.get()
、axios.post()
、axios.put()
、axios.delete()
等。
发送 GET 请求
import axios from 'axios';axios.get('https://api.example.com/data').then(response => {console.log(response.data); // 响应数据}).catch(error => {console.error('Error fetching data:', error);});
get
方法用于发送 GET 请求。response.data
包含了从服务器返回的数据。
发送 POST 请求
import axios from 'axios';const data = {name: 'John Doe',email: 'john@example.com'
};axios.post('https://api.example.com/users', data).then(response => {console.log('User created:', response.data);}).catch(error => {console.error('Error posting data:', error);});
post
方法用于发送 POST 请求。- 请求体中的数据(
data
)会被发送到服务器。
发送 PUT 请求
import axios from 'axios';const updatedData = {name: 'Jane Doe',email: 'jane@example.com'
};axios.put('https://api.example.com/users/1', updatedData).then(response => {console.log('User updated:', response.data);}).catch(error => {console.error('Error updating data:', error);});
put
方法用于发送 PUT 请求。它通常用于更新现有的资源。
发送 DELETE 请求
import axios from 'axios';axios.delete('https://api.example.com/users/1').then(response => {console.log('User deleted:', response.data);}).catch(error => {console.error('Error deleting data:', error);});
delete
方法用于删除指定的资源。
- 请求配置
axios
支持配置请求的各个方面,如 headers、params、timeout 等。你可以通过第二个参数传递一个配置对象来设置这些选项。
示例:设置请求头
import axios from 'axios';axios.get('https://api.example.com/data', {headers: {'Authorization': 'Bearer your_token_here'}
}).then(response => {console.log(response.data);}).catch(error => {console.error('Error:', error);});
示例:设置请求超时
import axios from 'axios';axios.get('https://api.example.com/data', {timeout: 5000 // 设置超时时间为 5 秒
}).then(response => {console.log(response.data);}).catch(error => {if (error.code === 'ECONNABORTED') {console.log('Request timeout');} else {console.error('Error:', error);}});
- 拦截器(Interceptors)
axios
提供了拦截器机制,使得你可以在请求发送之前或响应返回之后执行一些逻辑。
请求拦截器
import axios from 'axios';axios.interceptors.request.use(config => {console.log('Request Interceptor:', config);// 在发送请求之前做些什么,比如添加 token 等config.headers['Authorization'] = 'Bearer your_token_here';return config;
}, error => {return Promise.reject(error);
});
响应拦截器
import axios from 'axios';axios.interceptors.response.use(response => {console.log('Response Interceptor:', response);return response;
}, error => {console.error('Response Error:', error);return Promise.reject(error);
});
- 请求拦截器可以在请求发送之前修改请求的配置。
- 响应拦截器可以在响应返回之后处理响应数据或者捕获错误。
- 取消请求
有时你可能需要取消一个正在进行的请求,axios
提供了 CancelToken
来实现这一功能。
import axios from 'axios';const cancelToken = axios.CancelToken;
const source = cancelToken.source();axios.get('https://api.example.com/data', {cancelToken: source.token
}).then(response => {console.log(response.data);}).catch(error => {if (axios.isCancel(error)) {console.log('Request canceled:', error.message);} else {console.error('Error:', error);}});// 取消请求
source.cancel('Operation canceled by the user.');
- 并发请求
axios
还可以让你同时发送多个请求,并在它们全部完成后进行处理,使用 axios.all
和 axios.spread
来实现。
import axios from 'axios';const request1 = axios.get('https://api.example.com/data1');
const request2 = axios.get('https://api.example.com/data2');axios.all([request1, request2]).then(axios.spread((response1, response2) => {console.log('Response 1:', response1.data);console.log('Response 2:', response2.data);})).catch(error => {console.error('Error:', error);});
- 处理错误
axios
会将所有错误统一通过 catch
捕获。你可以通过 error.response
来访问服务器返回的错误信息。
import axios from 'axios';axios.get('https://api.example.com/data').then(response => {console.log(response.data);}).catch(error => {if (error.response) {// 服务器返回了响应console.error('Response error:', error.response);} else if (error.request) {// 请求已发出但没有收到响应console.error('Request error:', error.request);} else {// 发生了其他错误console.error('Error:', error.message);}});
- axios v.s. AJAX v.s. fetch
axios
在前端开发中具有较高的使用率,fetch
作为原生 API 也被广泛采用,而 XMLHttpRequest
的使用率相对较低。
特性 | AJAX (XMLHttpRequest ) | Fetch API | Axios |
---|---|---|---|
基于 | 回调函数 | Promise | Promise |
请求响应处理 | 需要手动管理请求状态和解析响应 | 自动解析 JSON,但仍需要手动处理错误 | 自动解析 JSON,无需手动处理响应数据 |
请求和响应拦截器 | 无 | 无 | 支持请求和响应拦截器 |
跨域请求 | 需要额外配置 CORS 头 | 需要额外配置 CORS 头 | 支持自动处理跨域请求(需要后端支持) |
请求取消 | 需要使用 AbortController | 需要使用 AbortController | 支持请求取消,直接使用 CancelToken |
浏览器兼容性 | 在所有浏览器中都能工作,但老旧浏览器不支持 | 大多数现代浏览器支持,但 IE 需要 polyfill | 支持现代浏览器和 IE(需要 polyfill) |
支持的功能 | 基本的 HTTP 请求功能 | 基本的 HTTP 请求功能 | 更丰富的功能:请求/响应拦截器、取消请求等 |
使用难度 | 相对较复杂,需要手动管理请求状态和响应解析 | 简单,支持 Promise ,且 API 直观 | 简单,且有更多的功能和配置选项 |
- axios与python requests库
功能 | Axios (JavaScript) | Requests (Python) |
---|---|---|
异步操作 | 基于 Promise ,支持 async/await | 同步请求,需要配合 aiohttp 异步库 |
自动解析响应 | 自动解析 JSON | 自动解析 JSON |
请求拦截器/响应拦截器 | 支持请求和响应拦截器 | 不支持直接的拦截器功能 |
取消请求 | 支持 CancelToken 来取消请求 | 无原生支持取消请求 |
跨域请求 | 处理跨域请求(CORS) | 不涉及浏览器,跨域由后端控制 |
浏览器支持 | 支持现代浏览器 | 仅支持 Python 环境 |
低级 HTTP 请求通常是指在较低的抽象层次上进行的 HTTP 请求,通常需要开发者手动处理许多细节,例如请求头、参数、响应处理、编码等。相比高级 HTTP 请求,低级 HTTP 请求提供了更多的灵活性和控制,但也要求开发者更了解底层的 HTTP 协议和细节。
python中类似的库:requests、httpx、aiohttp、urllib、pycurl、tornado,后端开发使用。
AJAX
AJAX(Asynchronous JavaScript and XML)本身并不属于 HTML。它是一个基于 JavaScript 的技术,用于实现网页的异步请求和更新。因此,AJAX 更准确地说是 JavaScript 技术,而不是 HTML 技术。
AJAX(Asynchronous JavaScript and XML)是一个用于创建动态和交互式网页的技术,它允许网页在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。这种方式能提高用户体验,因为它使得网页加载更加流畅,用户可以与页面进行交互,而无需等待页面的完全刷新。
尽管它的名字中有 “XML”,但现在 AJAX 主要用于通过 JSON(JavaScript Object Notation)与服务器交换数据。不过,它也支持通过 XML、HTML 或纯文本等格式进行数据交换。
- AJAX 的工作原理
AJAX 允许浏览器在后台发送 HTTP 请求到服务器,获取数据并在不刷新页面的情况下更新网页内容。通常,AJAX 使用 JavaScript 与服务器进行通信,通过 XMLHttpRequest 对象或现代的 fetch API 来发送请求。
AJAX 的基本流程如下:
用户发起请求(例如,点击按钮或加载页面时)。
JavaScript 使用 XMLHttpRequest 或 fetch() 向服务器发送请求(GET、POST 等)。
服务器接收请求,处理数据,并返回响应。
JavaScript 处理服务器返回的数据,并更新页面内容。
什么是 XMLHttpRequest 对象?
XMLHttpRequest 对象用于在后台与服务器交换数据。
XMLHttpRequest 对象能够:
在不重新加载页面的情况下更新网页
在页面已加载后从服务器请求数据
在页面已加载后从服务器接收数据
在后台向服务器发送数据
responseText 只适用于文本响应。如果服务器返回的是 JSON 或 XML 数据,可以使用 JSON.parse(req.responseText) 来将其转换为 JavaScript 对象,或使用 req.responseXML 获取 XML 格式的响应。
readyState 表示当前请求的状态。
XMLHttpRequest 的请求生命周期有 5 个阶段(0 到 4),表示请求的不同状态:
0 - UNSENT:对象已创建,但尚未调用 open() 方法。
1 - OPENED:已调用 open(),但尚未调用 send()。
2 - HEADERS_RECEIVED:已发送请求,并且已接收到响应头。
3 - LOADING:正在下载响应体。
4 - DONE:响应已完全下载,处理完成。
status 表示 HTTP 响应的状态码。
- 例子
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>AJAX Example</title>
</head>
<body><h1>AJAX Example</h1><button id="loadData">Load Data</button><div id="result"></div> <!-- 结果将显示在这里 --><script src="app.js"></script>
</body>
</html>
// 获取按钮和结果展示区域
const button = document.getElementById('loadData');
const result = document.getElementById('result');// 添加点击事件监听器
button.addEventListener('click', function() {// 创建一个新的 XMLHttpRequest 对象const xhr = new XMLHttpRequest();// 配置请求:GET 请求,指向一个 JSON 文件xhr.open('GET', 'data.json', true); // 异步请求// 设置 onload 事件处理函数xhr.onload = function() {if (xhr.status === 200) { // 如果请求成功const data = JSON.parse(xhr.responseText); // 解析返回的 JSON 数据result.innerHTML = `Message: ${data.message}`; // 显示结果} else {result.innerHTML = 'Error loading data';}};// 发送请求xhr.send();
});
XMLHttpRequest对象的open()方法有3个参数,第一个参数指定是GET还是POST,第二个参数指定URL地址,第三个参数指定是否使用异步,默认是true,所以不用写。
注意,尽量不要把第三个参数指定为false,否则浏览器将停止响应,直到AJAX请求完成。如果这个请求耗时10秒,那么10秒内你会发现浏览器处于“假死”状态。
最后调用send()方法才真正发送请求。GET请求不需要参数,POST请求需要把body部分以字符串或者FormData对象传进去。
- 上面代码的URL使用的是相对路径。如果你把它改为’http://www.sina.com.cn/',再运行,肯定报错。在Chrome的控制台里,还可以看到错误信息。
这是因为浏览器的同源策略导致的。默认情况下,JavaScript在发送AJAX请求时,URL的域名必须和当前页面完全一致。
完全一致的意思是,域名要相同(www.example.com和example.com不同),协议要相同(http和https不同),端口号要相同(默认是:80端口,它和:8080就不同)使用 JavaScript 请求外域(即跨域请求)时,通常会遇到 跨域资源共享 (CORS, Cross-Origin Resource Sharing) 的限制。默认情况下,浏览器会阻止网页发起跨域请求,以保护用户的安全。为了绕过这个限制,目标网站必须明确允许你的域名进行请求。
CORS 允许跨域请求
用JavaScript怎么请求外域(就是其他网站)的URL了呢?
- 使用 fetch() API(推荐)
现代浏览器支持 fetch(),可以发起跨域请求,但前提是目标网站支持 CORS。如果目标网站没有明确设置允许跨域访问,那么请求会被浏览器阻止。如果目标网站支持 CORS 并正确设置了头部(例如 Access-Control-Allow-Origin),请求就会成功。
fetch('https://example.com/data', {method: 'GET', // 或者 'POST',取决于你的请求类型headers: {'Content-Type': 'application/json'},mode: 'cors' // 必须设置为 'cors',表示进行跨域请求
}).then(response => response.json()) // 解析 JSON 数据.then(data => console.log(data)) // 处理返回的响应.catch(error => console.error('Error:', error)); // 错误处理fetch('https://example.com').then(response => {if (!response.ok) {throw new Error('Network response was not ok');}return response.text(); // 将响应转换为文本(HTML)}).then(html => {console.log(html); // 打印出返回的 HTML 文本}).catch(error => {console.error('There has been a problem with your fetch operation:', error);});
- 使用 XMLHttpRequest(旧版)
XMLHttpRequest 是发起 HTTP 请求的传统方式,它也可以用于发起跨域请求,但依赖于目标网站的 CORS 设置。
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://example.com/data', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function () {if (xhr.readyState === 4 && xhr.status === 200) {console.log(JSON.parse(xhr.responseText));}
};
xhr.send();
Fetch
- 例子:使用 fetch() API 替代 XMLHttpRequest
fetch() 是现代浏览器提供的一个 API,使用 Promise,比 XMLHttpRequest 更简洁,更强大的功能:fetch() 支持更多的功能,如设置请求头、控制超时等。并且它默认支持异步操作。这里是相同请求的 fetch() 版本:
const button = document.getElementById('loadData');
const result = document.getElementById('result');button.addEventListener('click', function() {// 使用 fetch 发起请求fetch('data.json').then(response => response.json()) // 解析返回的 JSON.then(data => {result.innerHTML = `Message: ${data.message}`; // 显示数据}).catch(error => {result.innerHTML = 'Error loading data';console.error(error);});
});
相关文章:
【前端】Axios AJAX Fetch
不定期更新,建议关注收藏点赞。 目录 AxiosAJAXCORS 允许跨域请求 Fetch Axios axios 是一个基于 Promise 的 JavaScript HTTP 客户端,用于浏览器和 Node.js 中发送 HTTP 请求。它提供了一个简单的 API 来发起请求,并处理请求的结果。axios …...
C++ 继承与运算符重载的简单练习
1.长方形的继承类 #include <iostream> #include <cstring> #include <cstdlib> #include <unistd.h> #include <sstream> #include <vector> #include <memory>using namespace std; class AB{ private:int a;int …...
pycharm技巧--鼠标滚轮放大或缩小 Pycharm 字体大小
1、鼠标滚轮调整字体 设置 Ctrl 鼠标滚轮调整字体大小 备注: 第一个是活动窗口,即缩放当前窗口 第二个是所有编辑器窗口,即缩放所有窗口的字体 2、插件 汉化包: Chinese Simplified 包...
deepseek 导出导入模型(docker)
前言 实现导出导入deepseek 模型。deepseek 安装docker下参考 docker 导出模型 实际生产环境建议使用docker-compose.yml进行布局,然后持久化ollama模型数据到本地参考 echo "start ollama" docker start ollama#压缩容器内文件夹,然后拷贝…...
STM32——HAL库开发笔记21(定时器2—输出比较)(参考来源:b站铁头山羊)
本文主要讲述输出比较及PWM信号相关知识。 一、概念 所谓输出比较,就是通过单片机的定时器向外输出精确定时的方波信号。 1.1 PWM信号 PWM信号即脉冲宽度调制信号。PWM信号的占空比 (高电压 所占周期 / 整个周期) * 100% 。所以PWM信号…...
【报错解决】vue打开界面报错Uncaught SecurityError: Failed to construct ‘WebSocket‘
问题描述: vue运行时正常,但是打开页面后报错 Uncaught SecurityError: Failed to construct WebSocket: An insecure WebSocket connection may not be initiated from a page loaded over HTTPS. 解决方案: 在项目列表中的public下的ind…...
【初探数据结构】时间复杂度和空间复杂度
💬 欢迎讨论:在阅读过程中有任何疑问,欢迎在评论区留言,我们一起交流学习! 👍 点赞、收藏与分享:如果你觉得这篇文章对你有帮助,记得点赞、收藏,并分享给更多对数据结构感…...
将DeepSeek接入vscode的N种方法
接入deepseek方法一:cline 步骤1:安装 Visual Studio Code 后,左侧导航栏上点击扩展。 步骤2:搜索 cline,找到插件后点击安装。 步骤3:在大模型下拉菜单中找到deep seek,然后下面的输入框输入你在deepseek申请的api key,就可以用了 让deepseek给我写了一首关于天气的…...
《TransMamba:一种混合Transformer-Mamba网络用于单图像去雨》学习笔记
paper:2409.00410 GitHub:sunshangquan/TransMamba 目录 摘要 1、介绍 2、相关工作 2.1 单图像去雨 2.2 视觉Transformer 2.3 光谱域中的Transformer 2.4 光谱域中的图像恢复 2.5 视觉Mamba 3、方法 3.1 整体网络架构 3.2 光谱域变换块&am…...
危化品经营单位安全管理人员的职责及注意事项
危化品经营单位安全管理人员肩负着保障经营活动安全的重要责任,以下是其主要职责及注意事项: 职责 1. 安全制度建设与执行:负责组织制定本单位安全生产规章制度、操作规程和生产安全事故应急救援预案,确保这些制度符合国家相关法…...
安装Redis并把Redis设置成windows下的服务然后进行Redis实例演示
目录 (一)安装Redis (二)Redis设置成windows下的服务 1、把redis设置成windows下的服务 2、设置服务命令 (三)Redis实例演示 1、Redis插入数据 2、Redis修改数据 3、Redis删除数据 4、Redis查询数…...
基于 Python 的项目管理系统开发
基于 Python 的项目管理系统开发 一、引言 在当今快节奏的工作环境中,有效的项目管理对于项目的成功至关重要。借助信息技术手段开发项目管理系统,能够显著提升项目管理的效率和质量。Python 作为一种功能强大、易于学习且具有丰富库支持的编程语言&…...
牛客周赛 Round 82(思维、差分、树状数组、大根堆、前后缀、递归)
文章目录 牛客周赛 Round 82(思维、差分、树状数组、大根堆、前后缀、递归)A. 夹心饼干B. C. 食堂大作战(思维)D. 小苯的排列计数(差分、树状数组)E. 和和(大根堆,前缀和)F. 怎么写线性SPJ &…...
【python】解析自动化脚本文件并按照=测试周期=存储记录
【python】连接Jira获取token以及jira对象 【python】解析自动化脚本文件并按照测试周期存储记录 【python】向Jira推送自动化用例执行成功 【python】向Jira测试计划下,附件中增加html测试报告 将已编写的自动化测试用例按照jira号解析出来,并按照测试计…...
一种简单有效的分析qnx+android智能座舱项目中的画面闪烁的方法(8155平台)
在智能座舱项目的开发过程中,画面闪烁问题是一个常见但棘手的挑战。由于这些闪烁现象往往转瞬即逝,传统的分析工具如截图、录屏或dump图层等方法难以捕捉和定位问题根源。针对这一难题,本文介绍了一种较为有效的分析方法,能够帮助…...
架构师论文《论湖仓一体架构及其应用》
软考论文-系统架构设计师 摘要 作为某省级商业银行数据中台建设项目技术负责人,我在2020年主导完成了从传统数据仓库向湖仓一体架构的转型。针对日益增长的支付流水、用户行为埋点及信贷审核影像文件等多模态数据处理需求,原有系统存在存储成本激增、实…...
一篇文章学懂Vuex
一、基于VueCli自定义创建项目 233 344 二、Vuex 初始准备 建项目的时候把vuex勾选上就不用再yarn add vuex3了 store/index.js // 这里面存放的就是vuex相关的核心代码 import Vuex from vuex import Vue from vue// 插件安装 Vue.use(Vuex)// 创建仓库(空仓库…...
模拟实现Java中的计时器
定时器是什么 定时器也是软件开发中的⼀个重要组件. 类似于⼀个 "闹钟". 达到⼀个设定的时间之后, 就执⾏某个指定好的代码. 前端/后端中都会用到计时器. 定时器是⼀种实际开发中⾮常常⽤的组件. ⽐如⽹络通信中, 如果对⽅ 500ms 内没有返回数据, 则断开连接尝试重…...
全面理解-深拷贝与浅拷贝
在 C 中,深拷贝(Deep Copy) 和 浅拷贝(Shallow Copy) 是两种完全不同的对象拷贝策略,主要区别在于对指针和动态分配资源的处理方式。正确理解二者的区别是避免内存泄漏、悬空指针和程序崩溃的关键。 一、核…...
20250212:https通信
1:防止DNS劫持:使用 https 进行通信。 因为是SDK授权开发,需要尽量压缩so库文件和三方依赖。所以第一想法是使用 head only 的 cpp-httplib 进行开发。 cpp-httplib 需要 SSL 版本是 3.0及以上。但本地已经在开发使用的是1.0.2a版本,不满足需求。 方案1:升级OpenSSL 将Op…...
如何使用爬虫获取淘宝商品详情:API返回值说明与案例指南
在电商数据分析和运营中,获取淘宝商品详情是常见的需求。淘宝开放平台提供了丰富的API接口,允许开发者通过合法的方式获取商品信息。本文将详细介绍如何使用PHP编写爬虫,通过淘宝API获取商品详情,并解析API返回值的含义和结构。 一…...
List 接口中的 sort 和 forEach 方法
List 接口中的 sort 和 forEach 方法是 Java 8 引入的两个非常实用的函数,分别用于 排序 和 遍历 列表中的元素。以下是它们的详细介绍和用法: sort 函数 功能 对列表中的元素进行排序。 默认使用自然顺序(如数字从小到大,字符…...
7.建立文件版题库|编写model文件|使用boost split字符串切分(C++)
建立文件版题库 题目的编号题目的标题题目的难度题目的描述,题面时间要求(内部处理)空间要求(内部处理) 两批文件构成第一个:questions.list : 题目列表(不需要题目的内容)第二个:题目的描述,题目的预设置…...
鸿蒙NEXT应用App测试-专项测试(DevEco Testing)
注意:大家记得先学通用测试在学专项测试 鸿蒙NEXT应用App测试-通用测试-CSDN博客 注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注…...
一周学会Flask3 Python Web开发-Jinja2模板访问对象
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 如果渲染模板传的是对象,如果如何来访问呢? 我们看下下面示例: 定义一个Student类 cla…...
docker离线安装记录
1.安装包 首先需要从官方网站下载Docker的离线安装包,可以通过以下地址找到自己想安装的版本: wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.7.tgz 【Docker】Docker学习之一:离线安装Docker步骤_docker离线…...
FreiHAND (handposeX-json 格式)数据集-release >> DataBall
FreiHAND (handposeX-json 格式)数据集-release 注意: 1)为了方便使用,按照 handposeX json 自定义格式存储 2)使用常见依赖库进行调用,降低数据集使用难度。 3)部分数据集获取请加入:DataBall-X数据球(free) 4)完…...
unity学习51:所有UI的父物体:canvas画布
目录 1 下载资源 1.1 在window / Asset store下下载一套免费的UI资源 1.2 下载,导入import 1.3 导入后在 project / Asset下面可以看到 2 画布canvas,UI的父物体 2.1 创建canvas 2.1.1 画布的下面是 event system是UI相关的事件系统 2.2 canvas…...
anaconda不显示jupyter了?
以前下载的anaconda显示jupyter,但是最近学习吴恩达的机器学习视频,需要用到jupyter,以前的jupyter运行不了,就重新下载了一个anaconda,发现新版的anaconda首页不显示jupyter了,在查找资料之后,…...
WordPress平台如何接入Deepseek,有效提升网站流量
深夜改代码到崩溃?《2024全球CMS生态报告》揭露:78%的WordPress站长因API对接复杂,错失AI内容红利。本文实测「零代码接入Deepseek」的保姆级方案,配合147SEO的智能发布系统,让你用3个步骤实现日均50篇EEAT合规内容自动…...
第十三:路由两个注意点:
4.3. 【两个注意点】 路由组件通常存放在pages 或 views文件夹,一般组件通常存放在components文件夹。 通过点击导航,视觉效果上“消失” 了的路由组件,默认是被卸载掉的,需要的时候再去挂载。 <script setup lang"ts&q…...
【前端学习笔记】Pinia
1.介绍 Pinia 是 Vue 3 中的官方状态管理库,作为 Vuex 的继任者,它为 Vue 3 提供了一个更现代、更灵活、更易用的状态管理解决方案。Pinia 主要用于管理应用中的全局状态,并提供了一个清晰、简洁的 API 来处理复杂的状态逻辑、数据流和副作用…...
Windows 11【1001问】Windows 11系统硬件配置要求
Windows 11 的设计目标是让用户更贴近自己喜欢的内容,在其发布之际,计算机在连接、创作以及游戏体验方面扮演了更加核心的角色。在设定 Windows 11 的最低系统要求时,我们依据三个关键原则来指导决策,以确保用户能够获得卓越的使用…...
ROS ur10机械臂添加140夹爪全流程记录
ROS ur10机械臂添加140夹爪 系统版本:Ubuntu20.04 Ros版本:noetic Moveit版本:moveit-noetic 参考博客: ur3robotiq ft sensorrobotiq 2f 140配置rviz仿真环境_有末端力传感器的仿真环境-CSDN博客 UR5机械臂仿真实例…...
火绒终端安全管理系统V2.0网络防御功能介绍
火绒终端安全管理系统V2.0 【火绒企业版V2.0】网络防御功能包含网络入侵拦截、横向渗透防护、对外攻击检测、僵尸网络防护、Web服务保护、暴破攻击防护、远程登录防护、恶意网址拦截。火绒企业版V2.0的网络防御功能,多层次、多方位,守护用户终端安全。 …...
halcon三维点云数据处理(二十五)moments_object_model_3d
目录 一、moments_object_model_3d例程二、moments_object_model_3d函数三、效果图一、moments_object_model_3d例程 这个例子说明了如何使用moments_object_model_3d运算符来将3D数据与x、y、z坐标轴对齐。在实际应用中,通过3D传感器获取的物体模型可能具有一个与物体主轴不…...
网络安全漏洞管理要求 网络安全产品漏洞
一、漏洞类型 缓冲区溢出、跨站脚本、DOS攻击、扫描、SQL 注入、木马后门、病毒蠕虫、web攻击、僵尸网络、跨站请求伪造、文件包含、文件读取、目录遍历攻击、敏感信息泄露、暴力破解、代码执行漏洞、命令执行、弱口令、上传漏洞利用、webshell利用、配置不当/错误、逻辑/涉及错…...
XML(eXtensible Markup Language)
eXtensible Markup Language(可扩展标记语言)是一种用来存储和传输数据的文本格式。 具体定义 XML 可扩展标记语言,是用于标记电子文件使其具有结构性的标记语言,可以 用来标记数据、定义数据类型,是一种允许用户对自…...
SpringBoot两种方式接入DeepSeek
方式一:基于HttpClient 步骤 1:准备工作 获取 DeepSeek API 密钥:访问 DeepSeek 的开发者平台,注册并获取 API 密钥。 步骤 2:引入依赖 <dependency><groupId>org.springframework.boot</groupId&g…...
el-date-picker 组件限制禁止选择当前时间之前的时间
页面代码 <el-date-pickerv-model"xxx.startTime"type"datetime"placeholder"请选择开始时间"value-format"YYYY-MM-DD HH:mm:ss"clearable:disabledDate"disabledDateFn":disabled-hours"disabledHours":dis…...
嵌入式科普(33)深度解析C语言中的const和volatile关键字
1. 关键字基础概念 const:定义"只读变量",被修饰的变量不可被程序修改 volatile:提醒编译器该变量可能被意外修改,禁止编译器优化 九、e2studio VS STM32CubeIDE之const修饰BSP函数的形参 嵌入式科普(23)指向寄存器的…...
DIP的实际举例
SOLID原则。 依赖倒置原则(DIP)的核心是高层模块不应该依赖于低层模块,二者都应该依赖于抽象(接口或抽象类) 例如,随着业务的发展,订单总金额的计算规则可能需要根据不同的客户类型或促销活动…...
【GESP】C++二级真题 luogu-b3955, [GESP202403 二级] 小杨的日字矩阵
GESP二级真题,多层循环、分支语句练习,难度★✮☆☆☆。 题目题解详见:https://www.coderli.com/gesp-2-luogu-b3955/ 【GESP】C二级真题 luogu-b3955, [GESP202403 二级] 小杨的日字矩阵 | OneCoderGESP二级真题,多层循环、分支…...
python类型转换深浅拷贝
1.类型转换 1.1 int(x):转化为一个整数,只能转换由纯数字组成的字符串 float->int 浮点型强转整形会去掉小数点后面的数,只保留整数部分 a 1.2 print(type(a)) #<class float> b int(a) print(type(b)) #<class int>print(int…...
Kafka面试题汇总
基础篇 1、什么是 Apache Kafka?它的主要用途是什么? 2、Kafka 中的几个核心概念是什么?请简要说明每个概念的作用。 3、Kafka 的 Producer 和 Consumer 是如何工作的?它们之间的数据传递机制是什么? 进阶篇 1、K…...
window安装MySQL5.7
1、下载MySQL5.7.24 浏览器打开: https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-winx64.zip 2、解压缩 下载下来的是一个压缩包,解压到你想放到的目录下面,我放的是“C:\MySQL” 3、配置MySQL环境变量 计算机右键 - 属性 …...
什么是手机9008模式?如何进入9008
之前给大家分享了一些有关手机刷机的知识,今天给大家讲一讲如果刷机过程中不慎变砖应该如何应对(当然了,希望大家都不会遇到)😂😄 在给手机 Root 或刷机时,线刷 9008 指的是利用 高通 9008 模式…...
【jira】用到几张表
jira用到的几张表 测试计划,测试周期,测试用例,问题记录 1. 测试计划 # 记录表,查计划详情 SELECT ID,issuenum,SUMMARY FROM jiraissue where issuenum 22871# 测试计划下,测试周期,查测试周期id&…...
文件包含-session2
[题目信息]: 题目名称题目难度文件包含-session22 [题目考点]: 由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意…...
在 MySQL 的 InnoDB 存储引擎中,脏页(Dirty Page)的刷盘(Flush)时机
1. 后台线程周期性刷盘 触发机制: InnoDB 的 Page Cleaner 线程 会周期性地将脏页刷入磁盘,防止内存中脏页堆积。 触发条件: 脏页比例阈值:当 Buffer Pool 中脏页占比超过 innodb_max_dirty_pages_pct(默认 90%&#…...