Ajax和Axios相关面试题总结

article/2025/9/17 10:20:43

文章目录

    • Ajax和Axios
        • 1.同步请求和异步请求
        • 2.fetch、axios、jquery的ajax用法
        • 3.JS跨域资源共享(CORS问题)
        • 4.Ajax 解决浏览器缓存问题
        • 5.ajax 返回的状态
        • 6.实现一个 Ajax
        • 7.如何实现 ajax 请求,假如我有多个请求,我需要让这些 ajax 请求按照某种顺序一次执行,有什么办法呢
        • 8.手写出原生 Ajax
        • 9.Fetch 和 Ajax 比有什么优缺点?

Ajax和Axios

AJAX:客户端可以’敲敲的’向服务器端发请求,在页面没有刷新的情况下,实现页面的局部更新
作用:发送的就是http请求,请求相应数据

Axios :是一个基于promise的网络请求库,作用于node.js和浏览器中,它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生node.js http模块, 而在客户端 (浏览端) 则使用XMLHttpRequest。

1.同步请求和异步请求

  • 同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事
  • 异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕

2.fetch、axios、jquery的ajax用法

都是用来进行http的请求

关系图:
Xhr(代码复杂rang) -> jquery封装的$ajax ->fetch(全新的技术) axios(封装ajax Xhr)

小扩展
JSONg格式是什么?

  • 是一种文件传输的格式
  • 多个键值对的形式
  • 获取JSON对象obj里面的属性a的方式
  • obj.a
  • obj[‘a’] (数组方法)

jquery封装的$ajax

请求的格式默认是表单格式

    $.ajax({//扩展方法,设置请求方法methods:"POST"//请求的参数  (1.post默认表单格式的提交,2.get:queryString)//3.json格式请求header:{'Content-type':'application/json'}//请求参数data:JSON.stringfy({a:10})//请求地址url(http://localhost:99),//拿到调用的数据success:function(data){conssole.log(data)}})

fetch

现在浏览器自带,不用下载任何的js包

    //返回的是promisefetch("http:/localhost:99?b=2"{//加入指定参数method:"POST"//以表单的形式提交//也可以JSON方式提交header:{"content-type":"application/x-www-form-urlencoded"}//请求参数body:"a=12&b=33"}).then(response=>response.json()).then(data=>console.log(data)

axios

不仅可以再前端进行http的请求,也可以在后端进行http的请求
请求的格式默认是JSON格式

    axios({url:"http://localhost:99?b=2",method:"POST",//支持表单的格式提交header:{"content-type":"application/x-www-form-urlencoded"}data:"a=123&b=156"data:{a:12} //then方法 拿到调用的数据}).then(res=>console.log(res.data))

3.JS跨域资源共享(CORS问题)

跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。

什么是同源策略?

  • 是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现,通俗来说请求必须三个要素相同,(协议、域名、端口) 都相同,

怎么解决跨域?
常用三种

  • 1.jsonp
    原理是通过href或者src请求下来的js脚本或者CSS文件视频图片都是不存在跨域问题,只要AJAX请求数据才存在跨域问题,但是Jsonp有瑕疵只能请求get
    原理是通过href或者src请求下来的js脚本或者CSS文件视频图片都是不存在跨域问题,只要AJAX请求数据才存在跨域问题,但是Jsonp有瑕疵只能请求get前端:function f(data){alter(data)}<script src="请求地址URL?callback=f"></script>后端:var funcname = request.query.callbackresponse.send(funcname+"('你好')"//f('你好')
  • 2.cors请求set
    CORS:一个W3C标准,它同时需要浏览器和服务端的支持,浏览器基本都支持,因此,想要实现CORS通信,只要服务器实现了CORS接口即可
    作用原理:它使用额外的 HTTP 头来告诉浏览器 让运行在一个 origin(domain) 上的Web应用被准许访问来自不同源服务器上的指定的资源。当一个资源从与该资源本身所在的服务器不同的域、协议或端口请求一个资源时,资源会发起一个跨域 HTTP 请求。而CORS 允许浏览器向跨源服务器,发出跨域请求,从而克服了A在这里插入图片描述
  • 3.代理转发
    • 后端设置代理和允许跨域请求
  • vue-cli 配置请求代理

什么是代理?

  • 常规 :A客户端向 B服务器请求
  • 变成: 代理服务器C收的A的请求 C服务器请求B服务器 返回给A客户端 (服务器请求服务器不存在跨域)

4.Ajax 解决浏览器缓存问题

  • 在 ajax 发送请求前加上 anyAjaxObj.setRequestHeader(“If-Modified-Since”,“0”)。
  • 在 ajax 发送请求前加上 anyAjaxObj.setRequestHeader(“Cache-Control”,“no-cache”)。
  • 在 URL 后面加上一个随机数: “fresh=” + Math.random()。
  • 在 URL 后面加上时间搓: “nowtime=” + new Date().getTime()。

5.ajax 返回的状态

0 - (未初始化)还没有调用 send()方法
1 - (载入)已调用 send()方法,正在发送请求
2 - (载入完成) send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了

6.实现一个 Ajax

AJAX 创建异步对象 XMLHttpRequest操作 XMLHttpRequest 对象
(1)设置请求参数(请求方式,请求页面的相对路径,是否异步)
(2)设置回调函数,一个处理服务器响应的函数,使用 onreadystatechange ,类似函数
指针
(3)获取异步对象的 readyState 属性:该属性存有服务器响应的状态信息。每当
readyState 改变时, onreadystatechange 函数就会被执行。
(4)判断响应报文的状态,若为 200 说明服务器正常运行并返回响应数据。
(5)读取响应数据,可以通过 responseText 属性来取回由服务器返回的数据。

7.如何实现 ajax 请求,假如我有多个请求,我需要让这些 ajax 请求按照某种顺序一次执行,有什么办法呢

使 ajax 请求按照队列顺序执行,通过调用递归函数:
//按顺序执行多个 ajax 命令,因为数量不定,所以采用递归function send(action, arg2) {想要获取更多前端开发相关学习资料,请加微信1124692领取>>>>>>
//将多个命令按顺序封装成数组对象,递归执行
//利用了 deferred 对象控制回调函数的特点
$.when(send_action(action[0], arg2))
.done(function () {
//前一个 ajax 回调函数完毕之后判断队列长度
if (action.length > 1) {
//队列长度大于 1,则弹出第一个,继续递归执行该队列
action.shift();
send(action, arg2);
}
}).fail(function (){
//队列中元素请求失败后的逻辑
//
//重试发送
//send(action, arg2);
//
//忽略错误进行下个
//if (action.length > 1) {
//队列长度大于 1,则弹出第一个,继续递归执行该队列
// action.shift();
// send(action, arg2);
//}
});
}
//处理每个命令的 ajax 请求以及回调函数
function send_action(command, arg2) {
var dtd = $.Deferred();//定义 deferred 对象
$.post( "url", {
command: command, 
想要获取更多前端开发相关学习资料,请加微信1124692领取>>>>>>
arg2: arg2
}
).done(function (json) {
json = $.parseJSON(json);
//每次请求回调函数的处理逻辑
//
//
//
//逻辑结束
dtd.resolve();
}).fail(function (){
//ajax 请求失败的逻辑
dtd.reject();
});
return dtd.promise();//返回 Deferred 对象的 promise,防止在外部

8.手写出原生 Ajax

var xhr = new XMLHttpRequest();
xhr.open('get', 'aabb.php', true);
xhr.send(null);
xhr.onreadystatechange = function() {
if(xhr.readyState==4) {
if(xhr.status==200) {
console.log(xhr.responseText);
}
}
} 

9.Fetch 和 Ajax 比有什么优缺点?

promise 方便异步,在不想用 jQuery 的情况下,相比原生的 ajax,也比较好写。

小编目前就整理了这些,后续会陆续更新啦~大家可以一起学习总结
在这里插入图片描述


http://chatgpt.dhexx.cn/article/nqOgw8nB.shtml

相关文章

面试题 —— Ajax的基本原理总结

前两天面试的时候&#xff0c;面试官问我&#xff0c;你掌握的技能是Ajax&#xff0c;那你给我讲一下它的基本原理吧&#xff01; 妈呀&#xff0c;瞬间脑子空白。当时在门口背了好久的网络知识点&#xff0c;一时竟然说不吃话&#xff0c;只记得什么异步通信&#xff0c;同步数…

AJAX常见面试题(修订版)

前言 只有光头才能变强。 文本已收录至我的GitHub仓库&#xff0c;欢迎Star&#xff1a;https://github.com/ZhongFuCheng3y/3y AJAX常见面试题 什么是AJAX&#xff0c;为什么要使用Ajax AJAX是“Asynchronous JavaScript and XML”的缩写。他是指一种创建交互式网页应用的网…

AJAX面试题都在这里

AJAX常见面试题 什么是AJAX&#xff0c;为什么要使用Ajax AJAX是“Asynchronous JavaScript and XML”的缩写。他是指一种创建交互式网页应用的网页开发技术。、 客户端与服务器&#xff0c;可以在【不必刷新整个浏览器】的情况下&#xff0c;与服务器进行异步通讯的技术 AJAX应…

SQL Server2016安装教程

安装前先关闭杀毒软件和360卫士&#xff0c;注意安装路径不能有中文&#xff0c;安装包路径也不要有中文。 注意&#xff1a;安装过程需要电脑连接网络&#xff0c;中途不能断网。 说明&#xff1a;需要安装SQL全部功能则需要先安装JDK&#xff0c;若只需要安装数据库功能的话则…

SQLServer2019安装教程

有手就行的SQL Server 2019超超超超级详细安装教程&#xff0c;你学会了吗&#xff1f; 1. 百度搜索SQL Server进入官网 https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2. 进入首页后鼠标下滑可以看见两个免费版本的sql server&#xff0c;选择需要的版…

SQL server 2017安装教程

✅作者简介&#xff1a;CSDN内容合伙人、阿里云专家博主、51CTO专家博主&#x1f3c6; &#x1f4c3;个人主页&#xff1a;hacker707的csdn博客 &#x1f525;系列专栏&#xff1a;实用工具&#x1f947; &#x1f4ac;个人格言&#xff1a;不断的翻越一座又一座的高山&#xf…

SqlServer2019安装教程-基本安装

SqlServer2019安装教程-自定义安装&#xff1a;https://blog.csdn.net/qq_33556442/article/details/100885939 下载SQL Server 2019 Release Candidate https://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-2019-rc/ 1.点击【Continue】 2.填写资料再点击【Co…

SQL Server 2016下载及安装教程

目录 一、下载 1.sql server 2016安装包与sp2补丁 ​编辑2.管理工具 二、安装 1.sql server2016 2.补丁SP2安装 三、用管理工具连接sql 一、下载 1.sql server 2016安装包与sp2补丁 下载链接在评论中 2.管理工具 下载链接在评论中 二、安装 1.sql server2016 选中下…

SQL Server2008安装详细教程

1.将光盘文件解压成文件夹格式&#xff0c;&#xff08;解压过程比较慢&#xff0c;请耐心等待&#xff09;&#xff1b; 2.打开开始菜单的设置&#xff1b; 3.打开设置后&#xff0c;点击更新和安全&#xff0c;然后进入&#xff1b; 4.在Windows安全中心&#xff0c;将…

Sql Server 2019 详细安装教程

Sql Server 2019 详细安装教程 安装完成后校验准备需要设备检查.NET 35 环境自定 jdk 下载 安装完成后校验 该步骤请在以下步骤全部操作完成后再看 参考链接&#xff1a;Sql Server 2019 完成安装后检验使用 准备 需要设备 WIN 10 电脑一台 检查.NET 35 环境 检查.NET35…

【数据库】SQL Server2022安装教程

大家好&#xff0c;我是雷工&#xff01; 最近需要安装SQLServer数据库&#xff0c;此次安装的是sql_server_2022_developer版本&#xff0c;以下记录安装及配置过程。大家可以参考指正。 一、安装SQL Server步骤&#xff1a; 1、官网下载 SQL Server 2022 Developer。 2、打…

SQLServer安装教程(史上最详细版本)

下载 安装包已上传至百度网盘&#xff0c;安装包里已含注册码&#xff0c;下载地址&#xff08;含注册码&#xff09; 链接&#xff1a;https://pan.baidu.com/s/147YRI7DdCqTOTKfe9UNtiA 提取码&#xff1a;6txl 安装过程 1.选择解压目录 2.解压完成后&#xff0c;进入解压…

SQL Server 2008R2安装详细教程(附安装包)

许多人都在苦恼如何安装SQL server&#xff0c;或者找不着安装包&#xff0c;那么这篇文章将带您避坑&#xff0c;解决您的烦恼 安装包如下&#xff1a; 云盘链接&#xff1a; 嗨&#xff0c;请点击我&#xff01;http://pan.baidu.com/s/1_7sQ9Eky2mGogKe4W0A_6Q 提取码&#…

SQL Server安装下载教程

SQL Server安装下载教程 一、官网下载二、安装1.运行安装包&#xff0c;选择安装类型是“基本”2.选择语言3.选择安装路径4.继续安装SSMS 三、基础配置1.打开SQL Server 2019 配置管理器2.选择SQL Server 网络配置-->MSSQLSERVER的协议-->TCP/IP&#xff0c;启动它3.打开…

SQL Server 2019安装教程(图文)

本章教程&#xff0c;介绍一下SQL Server 2019的安装过程。 SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点。Microsoft SQL Server 是一个全面的数据库平台&#xff0c;使用集成的商业智能 (BI)工具提供了企业级的…

SQL Server 2019下载及安装教程

目录 一、下载 1.sql server 2019安装包 2.管理工具 二、安装 1.sql server2019 2.安装管理工具 三、用管理工具连接sql 一、下载 1.sql server 2019安装包 链接&#xff1a;https://pan.baidu.com/s/1je-24NywXCnFL0OTAMbg2w?pwd2vtv 提取码&#xff1a;2vtv 2.管理…

SqlServer 2019/2022 安装教程(图文)

一、安装sql sever 2019/2022 两个链接都可 Sqlserver2019官网 SqlServer2019下载 https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads https://www.microsoft.com/zh-cn/evalcenter/evaluate-sql-server-2019?filetype EXE1.下载exe 填写信息 2.双击运行官网…

SQL Server 下载安装教程

--------------------------2021.3.9更新---------------------------------------- 有几位读者私聊我遇到了如下问题 针对如上问题“糟糕无法安装SQLServer(setup.exe)” 可以安装如下步骤进行解决&#xff1a; 1.尝试修复 出现这种状况主要原因还是安装过程中没有完整安装或…

SQL SERVER 2019安装教程-最全安装步骤

SqlServer2019安装教程-自定义安装&#xff1a;转载 https://blog.csdn.net/qq_33556442/article/details/100885939 下载SQL Server 2019 Release Candidate https://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-2019-rc/ 1.点击【Continue】 2.填写资料再点击…

sql安装步骤

SQL Server 是Microsoft 公司推出的关系型数据库管理系统。Microsoft SQL Server 是一个全面的数据库平台&#xff0c;使用集成的商业智能 (BI)工具提供了企业级的数据管理。 安装包下载链接&#xff1a;https://pan.baidu.com/s/1CRAfveNNJ20SgB2zFNIGfw 1.右击【数据库安装包…