Axios介绍

article/2025/9/20 20:25:08

Axios是专注于网络数据请求的库,相比于XMLHttpRequest对象。axios简单易用,相比于jQuery,axios更加轻量化,只专注于网络数据请求

引入外部js文件

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

格式

Axios发送get请求的语法:

Axios.get("url",{params:{} }).then(callback)

其中then中执行成功后的回调函数

Axios发送post请求的语法:

Axios.post("url",{ {} }).then(callback)

其中then中执行成功后的回调函数

小练习

<script>axios.get("/data/student.json").then(function (res) {console.log(res)})//所传参数var obj = {}//JSON.stringify(obj)转换为字符串向node后台传参axios.post("/data/student.json",{JSON.stringify(obj)}).then(function (res) {console.log(res)})
</script>

node 运行的js后台文件,每次接口调用时都需要在终端使用nide运行js文件

以下代码直接c v到js文件中

var http = require("http");
var queryString = require("querystring");
http.createServer(function (req, res) {//实现跨域res.writeHead(200, { "Access-Control-Allow-Origin": "*" });//创建存储数据变量var params = "";//获取数据req.on("data", function (d) {//参数拼接params += d.toString();});//请求数据结束req.on("end", function () {//将获取的参数转换为json格式params = JSON.parse(params);var retu = {message:"成功返回",states:1}//将多条信息转换为字符串返回到客户端res.write(JSON.stringify(retu));// 结束res.end();});}).listen(8090);
 

使用原生Ajax封装函数

// function myAjax(type, url, data, async, success, error)
function myAjax(obj) {// 定义xmlhttp变量存储拆功能键对象var xmlHttp = createXmlHttp();//请求方式    get/postif (obj.type.toUpperCase() == "GET") {//明文地址栏传参xmlHttp.open(obj.type, obj.url + "?" + obj.data, obj.async);// 发送请求xmlHttp.send();} else if (obj.type.toUpperCase() == "POST") {//明文地址栏传参xmlHttp.open(obj.type, obj.url, obj.async);xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");// 发送请求xmlHttp.send(obj.data); //post请求方式通过send()将参数传递到服务器端} else {throw new Error("您的请求方法有误!");}//事件处理xmlHttp.onreadystatechange = function () {//   判断状态值switch (xmlHttp.readyState) {case 1:console.log("open() 方法已调用,但是sned()方法未调用,请求还没有被发送");break;case 2:console.log("send() 方法已调用,HTTP请求已发送到web服务器,未接受到响应。");break;case 3:console.log("所有响应头部都已经接收到。响应体开始接收但未完成。");break;case 4:if (xmlHttp.status == 200) {console.log("HTTP相应已经完全接收。");// 回调函数obj.success(xmlHttp.responseText);}break;default:error(xmlHttp.statusText());break;}};
}
function createXmlHttp() {//   判断浏览器是否支持ActiveX控件if (window.ActiveXObject) {// try{}试试    不行就执行catch{}try {xmlHttp = new ActiveXObject("Msxm12.XMLHTTP");} catch (e) {xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}//判断是是否把XMLHttpRequest实现为本地JavaScript对象} else if (window.XMLHttpRequest) {try {xmlHttp = new XMLHttpRequest();} catch (e) {xmlHttp = false;}}return xmlHttp;
}

同源策略

 

同源策略(Same origin policy)是浏览器提供的一个安全功能

MDN官方给定的概念:同源策略限制了从同一个原加载的文档或脚本如何与来自另一个元的资源进行交互。这是一个用于隔离潜在而已文件的重要安全机制。

通俗的理解:浏览器规定,A网站的JavaScript,不允许和非同源的网站C之间,进行资源的交互,例如:无法读取非同源王爷的Cookie、LocalStorage和IndexedDB

无法接触非同源网页的DOM

无法向非同源地址发送Ajax请求

 

实现跨域请求的两种方式JSONP和CORS

JSONP实现跨域请求的原理:由于浏览器同源策略的限制,网页中无法通过Ajax请求非同源的接口数据。但是<script>标签不受同源策略的影响,可以通过src属性,请求非同源的js脚本。因此,JSONP的实现原理,就是通过<script>标签的src属性,请求跨域的数据接口,并通过函数调用的形式,接收跨域接口响应回来的数据

 

<script>function success(data) {console.log("获取到了数据");console.log(data);}
</script>
<script src="https://www.runoob.com/try/ajax/jsonp.php?jsoncallback=success"></script>


http://chatgpt.dhexx.cn/article/5N9QhSrE.shtml

相关文章

VUE的axios的详细介绍和用法

Vue中发送网络请求有非常多的方式, 那么, 在开发中, 我们该如何选择呢? 选择一: 传统的Ajax是基于XMLHttpRequest(XHR) 为什么不用它呢? 非常好解释, 配置和调用方式等非常混乱.编码起来看起来就非常蛋疼. 所以真实开发中很少直接使用, 而是使用jQuery-Ajax 选择二: 在前…

AJAX,Axio异步框架(对原生AJAX封装)。web分区

1.Ajax的理解 以前服务器里的数据&#xff0c;都是存在Servlet域里&#xff0c;然后发给JSP&#xff0c;来进行显示。 有了AJAX&#xff0c;可以和服务器通信。不需要JSP作页面。 可以在Servlet把数据发给浏览器&#xff0c;然后在HTML页面显示。 1.1 以前的方法 1.2 现在的方…

类方法和对象方法的区别

类方法和对象方法 1.类方法属于本类的方法&#xff0c;不会因创建对象的不同而改变&#xff0c;类方法随着类的字节码文件加载而加载&#xff1b; 2.对象方法属于当前类创建的某个对象&#xff0c;会随着创建对象的不同而改变。如下图所示代码&#xff1a;

python中什么叫类、什么叫对象_Python中的类和对象是什么

一、面向过程和面向对象 面向过程:根据业务逻辑从上到下写代码。 面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程。 二、类和对象 1、类的概念 面向对象编程的2个非常重要的概念:类和对象是面向对象编程的核心。 在使用对…

类与对象的区别?

对于初学者来说&#xff0c;类与对象之间的关系的非常模糊不清的&#xff0c;在这里跟大家分享一下&#xff0c;让初学者有所帮助。 一、类的概念&#xff1a; 类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述&#xff0c;其内部包括属性…

Java类和对象 详解(一)

一、面向对象简述 面向对象是一种现在最为流行的程序设计方法&#xff0c;几乎现在的所有应用都以面向对象为主了&#xff0c;最早的面向对象的概念实际上是由IBM提出的&#xff0c;在70年代的Smaltalk语言之中进行了应用&#xff0c;后来根据面向对象的设计思路&#xff0c;才…

C++类和对象详细总结

目录 目录 类与对象概念 什么是对象 什么是类 什么是方法&#xff1a; 自定义类型&#xff08;类的关键字&#xff1a;class&#xff09; 定义类的格式 封装 类的特性 访问权限以及访问限定符 struct 定义的类和class定义的类的区别&#xff1a; 小结 对象中包含了…

C++类和对象详解

类与对象上篇&#xff1a; 主要内容&#xff1a; 1.类和对象的区别。 2.类的定义。 3.类的访问限定符和封装 4.类的作用域 5.类的实例化&#xff08;用类类型创建对象&#xff09; 6.计算类对象的大小 7.this指针 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析…

面向过程和面向对象区别

&#xff08;1&#xff09;从设计思路来看。 面向过程&#xff1a;程序设计的重点是分析解决问题的步骤&#xff0c;以及完成步骤的流程&#xff0c;是一种结构化自上而下的程序设计方法。面向对象&#xff1a;程序设计的重点是把构成问题的事物分解成对象&#xff0c;从局部着…

Java基础——类和对象

目录 一、类和对象的基本概念 二、类与对象的定义与使用 1.创建类的语法&#xff1a; 2. 创建具体的对象&#xff1a; 3.范例&#xff08;创建一个Person 类的对象&#xff09; 三、static关键字 &#xff08;一&#xff09;static修饰属性&#xff08;类属性、类变量&a…

类,对象,方法与函数的区别

面向对象&#xff08;Object oriented Programming&#xff0c;OOP)编程 的思想主要是针对大型软件设计而来的。面向对象编程将数据和操作数据相关的方法封装到对象中&#xff0c;组织代码和数据的方式更加接近人的思维&#xff0c;使程序的扩展性更强、可读性更好&#xff0c;…

C++的类和对象

目录 C面向对象的三大特性&#xff1a;封装、继承、多态 封装 构造函数和析构函数 构造函数的分类与调用 深拷贝与浅拷贝 类对象作为类成员 静态成员 成员变量和成员函数是分开存储的 const修饰成员函数 友元 运算符重载 继承 多态 C面向对象的三大特性&#xff1…

java实例和对象对象的区别_java中实例与对象的区别和联系

对象是抽象的说法&#xff0c;你可以把它看作一个符合它自身定义的所有实例的代表&#xff0c;而实例则是对象的现实体现。 你可以说一个实例是一个对象&#xff0c;但你不能说一个对象是一个实例。因为定义对象时只是把自身的规则和逻辑定义好&#xff0c;实例可以通过输入不同…

怎么来理解java类和对象的区别

对象在需求中的使用 在具体问题中如何使用面向对象去分析问题&#xff0c;和如何使用面向对象。 以把大象装冰箱为例进行分析&#xff1a;在针对具体的需求&#xff0c;可以使用名词提炼的办法进行分析&#xff0c;寻找具体的对象。 需求&#xff1a;把大象装冰箱里 对象&…

C++类对象和类指针的区别

好奇这个&#xff0c;所以参考了一些帖子&#xff0c;写下心得。 一篇转载率较高的帖子&#xff1a;C 类对象和 指针的区别 大佬都不贴结果。。。。所以这里我给出代码和结果&#xff1a; #include<iostream> using namespace std;class Test{ public:int a;Test(){a …

Java中类和对象的区别

一、类和对象 1、类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象类是对象的数据类型&#xff0c;类是具有相同属性和行为的一组对象的集合简单理解&#xff1a;类就是对现实事物的一种描述 类的组成 属性&#xff1a;指事物的特征&#xff0c;例如&#xff…

安装svn 汉化包 也不能设置中文

(以下为亲测!) 汉化包地址:https://osdn.net/projects/tortoisesvn/storage 进入地址之后:选择对应版本-->>Language Packs-->>选择中文包 问题: 已经安装svn汉化包,但是不能设置为中文. 解决: 确保汉化包版本对应svn版本.如果汉化包版本已经对应svn版本,则把…

SVN汉化失败的原因及解决方案(通过SVN官网下载SVN和相应的汉化包)

1、没删除SVN根目录语言包里的所有文件 2、汉化包没放在SVN根目录的语言文件夹下安装 3、SVN版本和汉化包版本不一致 首先看自己电脑上安装的svn是什么版本&#xff1a; 比如我的就是 TortoiseSVN 1.11.1&#xff0c;那我就要找TortoiseSVN 1.11.1对应的TortoiseSVN 1.11.1l…

Tortoise SVN 汉化(官网下载汉化包)

&#xff08;本操作是已经下载Tortoise SVN后 &#xff0c;通过官网下载汉化包进行的操作&#xff09; 1、首先进入到官网 https://tortoisesvn.net/downloads.html 2、进入到官网首页&#xff0c;点击Translations 3、进入到翻译页面&#xff0c;点击download 4、进入到下…

window eclipse快速导入svn项目以及软件汉化

刚入职新公司&#xff0c;之前几家公司使用得IDE跟代码管理是idea跟gitlab,公司内sap/erp系统&#xff0c;立项时间较早&#xff0c;使用得是eclipsesvn。 进行导入项目之前&#xff0c;英语水平较差得得同学&#xff0c;可以将软件先进行快速汉化 1、如图 2、在弹出得输入框中…