最新要闻
- 杭州热电再度触及涨停|焦点速递
- 次旗舰RTX 4080移动版独显性能如何?实测揭晓答案_世界快报
- 比iPhone 14更薄!网友评价小米Civi 3:外观太牛了 工业设计之巅
- 当前要闻:和AI网聊10分钟被骗430万惊呆全网 官方:AI诈骗成功率接近100%
- 海拔8300米!我国科研人员成功维护升级世界最高自动气象站:已传回数据_环球观速讯
- 强电与弱电的区别,你了解吗?
- 全球今日讯!没听妈妈话学了物理他拿了诺奖 丁肇中:坚持自己的兴趣和理想
- 【天天新视野】Intel超级APU:黄了!
- 越南打工人不加班 一天只干5小时:逼急中国老板 傻子一样
- 世界微动态丨广州高温费发放标准2023 广州高温补贴几月开始发放?
- 高空坠物致人死亡 36名住户赔偿!专家称非常危险:一定要避免
- 浙江一公司上4休3收到上千份简历:目前仅有三名员工、盈利只够工资 全球热闻
- 刀片电池走向全球 多国力邀比亚迪建厂!官方回应
- 《小美人鱼》IGN 7分:不完全成功 海洋生物太丑!
- 就在地球上 科学家培育出一个“黑洞”:结果有了惊人发现 环球观天下
- 环球讯息:你会相信人工智能医生吗
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
原生js如何请求接口 今日报
(相关资料图)
====>请求基本流程:创建XHR实例对象 => 发送数据 => 接收数据
首先我们会创建xml实例对象
let xmlHttp = new XMLHttpRequest()
需要根据不同版本浏览器创建
if (window.XMLHttpRequest) { //code for all new browsers xmlHttp = new XMLHttpRequest; } else if (window.ActiveXObject) { //code for IE5 and IE6 xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
调用xhr对象上的 open() 方法,创建一个请求
open()方法里面接收三个参数
- 第一个参数(必填):请求类型(主要两个POST,GET)
- 第二个参数(必填):请求的URL地址
- 第三个参数(默认true):是否异步发送请求(true:异步请求;false:同步请求)
根据项目需求,加上请求头
// 设置content-Type,后端传给前端为JSON格式数据xmlHttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");// 这个是用来解决跨域xmlHttp.setRequestHeader("Access-Control-Allow-Origin", "*");
最后就是发送请求啦
// get请求中send()方法里面的参数传值为nullxmlHttp.send(null)// post请求中send()方法里面的参数传值为json格式xmlHttp.send("{"test":123}")
请求发送出去后,客户端需要接收服务器响应回来的数据,
对象实例里面的属性
属性名 | 含义 |
---|---|
responseText | 服务端返回的文本信息 |
responseXML | 服务端返回的XML DOM文档 |
status | HTTP状态码 |
statusText | HTTP状态码说明 |
readyState | xhr对象的请求响应阶段 |
readyState里面状态码含义
- 0: 还未创建请求,即未调用 open() 方法
- 1: 已调用 open() 方法,但未发送 send() 方法
- 2: 已调用 send() 方法,但未接收到响应
- 3: 已接收到部分响应
- 4: 已接收到全部的响应
如果readyState === 4
且 status === 200
就是成功,两个可以分开判断,先判断readyState
在进行status
判断
废话不多说,直接上代码,完整代码 如下:
var xmlHttp = null;var requestData = ""/** * @param requestData 请求参数 * @param callBack * * * 调用示例 * httpRequest{ * { * method:"post" * url:"http://localhost:8080/login" * data:{ * userName:"张三", * passWord:"123456" * } * },function (res){ * //处理成功回调 * },function (err){ * //处理失败回调 * } * } */function httpRequest(requestObj,successFun,failFun) { let { url:httpUrl, method, data, async } = requestObj xmlHttp = checkBrowser(xmlHttp); //请求方式, 转换为大写 var httpMethod = (method || "Get").toUpperCase(); //post请求时参数处理 if (httpMethod === "POST") requestData = JSON.stringify(data) xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState === 4 && xmlHttp.status === 200) { // 请求成功的回调函数 successFun(JSON.parse(xmlHttp.responseText)); } else { //请求失败的回调函数 failFun(JSON.parse(xmlHttp.responseText)); } } // 发送请求 sendRequest(httpUrl, requestData, httpMethod, async );}/** * 校验浏览器创建xmlHttp对象 * @param xmlHttp */function checkBrowser(xmlHttp) { //创建 XMLHttpRequest 对象,老版本的 Internet Explorer (IE5 和 IE6) //使用 ActiveX 对象:xmlhttp=new ActiveXObject("Microsoft.XMLHTTP") if (window.XMLHttpRequest) { //code for all new browsers xmlHttp = new XMLHttpRequest; } else if (window.ActiveXObject) { //code for IE5 and IE6 xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } // console.log(xmlHttp) return xmlHttp;}/** * 发送请求 * @param xmlHttp * @param requestData */function sendRequest(httpUrl, requestData, httpMethod, async) { if (httpMethod === "GET") { xmlHttp.open("GET", httpUrl, async); xmlHttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); xmlHttp.send(null); } else if (httpMethod === "POST") { xmlHttp.open("POST", httpUrl, async); xmlHttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); xmlHttp.setRequestHeader("Access-Control-Allow-Origin", "*"); // 用来解决跨域 xmlHttp.send(requestData); }}
示例post请求
function getBalanceApi() { return new Promise((resolve,reject)=>{ httpRequest({ method:"post", url:"http://192.168.19.192:8081/huayuan/get_lock_store_result", data:{ orderNo:"83375ad7d7959612" }, async:true, },(res)=>{ resolve(res) console.log(res) },(err)=>{ reject(err) }) })}
在对应功能里获取数据
getBalanceApi().then((res)=>{ // 获取成功返回数据 console.log(res,"res") }).catch((err)=>{ // 获取失败返回数据 console.error(err,"res") })
关键词:
原生js如何请求接口 今日报
数字转换_全球播报
震惊!二狗子的火锅店被隔壁老王 DDoS 攻击了
杭州热电再度触及涨停|焦点速递
次旗舰RTX 4080移动版独显性能如何?实测揭晓答案_世界快报
比iPhone 14更薄!网友评价小米Civi 3:外观太牛了 工业设计之巅
当前要闻:和AI网聊10分钟被骗430万惊呆全网 官方:AI诈骗成功率接近100%
海拔8300米!我国科研人员成功维护升级世界最高自动气象站:已传回数据_环球观速讯
强电与弱电的区别,你了解吗?
易基因:全基因组DNA甲基化分析揭示DNMT1在斑马鱼模型听觉系统发育中的作用 | 胚胎发育|今日播报
聊聊ElasticeSearch并发写的乐观锁机制 天天快讯
世界热点评!臭名昭著的“Hello,World!”
全球今日讯!没听妈妈话学了物理他拿了诺奖 丁肇中:坚持自己的兴趣和理想
【天天新视野】Intel超级APU:黄了!
越南打工人不加班 一天只干5小时:逼急中国老板 傻子一样
世界微动态丨广州高温费发放标准2023 广州高温补贴几月开始发放?
人工智能将如何改变敏捷项目管理?|当前最新
2步轻松实现ASP.NET Core托管服务执行定时任务_天天资讯
互联网从业人员的知识图谱-天天观速讯
高空坠物致人死亡 36名住户赔偿!专家称非常危险:一定要避免
浙江一公司上4休3收到上千份简历:目前仅有三名员工、盈利只够工资 全球热闻
刀片电池走向全球 多国力邀比亚迪建厂!官方回应
《小美人鱼》IGN 7分:不完全成功 海洋生物太丑!
就在地球上 科学家培育出一个“黑洞”:结果有了惊人发现 环球观天下
环球讯息:你会相信人工智能医生吗
carplay放歌没声音怎么回事_当前头条
MSE 自治服务帮你快速定位解决 Dubbo 重复订阅导致 RPC 服务注册失败问题
springcloud~gateway网关
[css]总结-如何实现水平垂直都居中对齐?
闫衍:经济复苏由结构分化走向全面修复 全年经济增速有望达到5.7%
全球快播:登陆iOS后:安卓版ChatGPT即将上线
家长投诉网红店打卡博主穿着暴露 离学校近影响孩子心理:网友吵翻-热文
世界热讯:华为完成14nm以上EDA替代 更强的国产EDA来了:部分已支持5nm
魅族618开启!魅族20限时直降200元:2999元起 3年超长质保_世界要闻
自拍神器!小米Civi 3前置双主摄:32MP美人镜+32MP超广角|世界速看料
新动态:我国深海装备技术水平持续提升 为南海沉船遗址考古研究提供科技支撑
今日播报!数据驱动的军港革新:智慧可视化助力军事决策
子母钟系统(网络时钟系统)助力高考精准计时工作建设
天天微速讯:云计算遇上电动车,跑出新模式的数智化转型
天天观察:能力惊人!GPT-4通过注册会计师和内审师考试
“小而美”国民爆款车!五菱宝骏悦也售价曝光:或8.38万元起 当前播报
比亚迪研发公司更名方程豹汽车销售公司:王传福卸任董事长
环球观天下!5倍于ChaGPT Intel推出Aurora genAI大模型:1万亿参数
微信5个“隐藏”超强功能 你知道几个? 新资讯
怎么验证苹果手机是不是正品
css 中class包含某元素的选择器-速读
JS中的undefined 与 null_天天热门
世界微头条丨CoaXPress 协议的CRC及其具体实现
【全球独家】【一步步开发AI运动小程序】五、帧图像人体识别
中企承建的安哥拉最大水电站开启大坝主体施工 当前热议
12306教你买便宜的火车票 最高可省近200元
Redmi K60宣布最高降价500元:2299元起!-全球热讯
16GB内存+1TB存储仅2899元!Redmi K60 1TB顶配版图赏
618价格战提前开打 宏碁27寸2K 170Hz显示器到手999(Fast IPS面板)|环球观速讯
全球热讯:OPPO Reno10系列核芯公布:骁龙8+旗舰平台 配长寿续航
微信昵称怎么设置空白_微信昵称设置特殊符号_全球观天下
周口搅拌泵选购要注意什么 购买搅拌泵时要注意什么
上线近10年你听过吗?短视频制作神器逗拍宣布停止运营
雨量破历史极值!深圳凌晨突遇暴雨:电闪雷鸣 网友被吵醒
宠物猫被邻居高空扔下活活摔死 网友气愤行为可耻:为何虐猫 每日聚焦
本周五上!《小美人鱼》国内票房预售凉凉 15万都没到:口碑解禁 小黑美人鱼完美
国内人均工作时间48.7小时!专家称大家不是反对加班而是不给加班费
天天热推荐:欧盟外长会未就新一轮对俄制裁达成共识
学系统集成项目管理工程师(中项)系列24b_信息系统集成专业技术知识(下)
【读财报】一季度公募基金销售保有量透视:招行、蚂蚁基金领跑,银行系份额领先但占比下降 全球焦点
5月版号下发!86款国产游戏获批:腾讯、网易在列 天天快资讯
每日短讯:为了不再做噩梦 我试着给它编了个“好结局” 竟然真管用
葡萄牙一块大石头居然会“生孩子”?真相大白_当前信息
618让利16亿!小米12S Pro闪降900元:3199元买骁龙8+徕卡旗舰|微头条
20万的纯电SUV 彻底“杀疯了” 天天热点
当前速递!最高直降400元!小米13系列官方首次降价:3699元起
每日动态!茂硕电源:截至2023年5月19日,公司股东人数约3万多户
开源.NetCore通用工具库Xmtool使用连载 - 发送邮件篇
全球最资讯丨[Linux] CENTOS7设置Swap交换区
特斯拉必装脚部记录仪?挪威出租车司机指控Model Y自行加速撞车 天天视讯
3个月残忍杀死650头大象!为什么不能活着取象牙?
银河系中心 超级黑洞附近:恒星一颗颗地神秘消失了! 全球滚动
全球简讯:买这些新SSD的 十个里有九个是大怨种!
1TB“白菜价” 一加Ace 2V新版上架:2799元|世界速看
同房后多久可以用试纸测出怀孕_生产后多久可以怀孕
范式之魂和孟极哪个好(范式守信)
学厨师多少钱?_学厨师需要多少钱 每日观察
微软必应搜搜份额创历史新高 成为中国第一大桌面搜索引擎
乐高再次推出了实物大小超跑 精密极致且价格不菲
《碧海黑帆》现状惨淡“摇摇欲坠” 游戏或将面临推迟或被砍
全球首架C919大飞机飞抵南京机场 累计获得32家客户1035架订单
超级计算机Frontier蝉联了榜首 显示其运算性能增长至1.194 Exaflop/s
深入理解Kube-APIServer 世界视点
焦点信息:数据库设计三范式
文心一言 VS chatgpt (21)-- h264编码一帧数据的流程是怎样的?_今日讯
今日热议:盘点被时代淘汰的厨房产物!谁买谁后悔
超迷你的M.2 2230 SSD新品铠侠BG6发布:2TB容量!第6代闪存性能暴增
光追游戏实测 RTX 4060/70/80体验究竟相差多少_全球球精选
丰田霸道变速箱油哪个牌子好_丰田霸道变速箱油灯亮 世界快资讯
Java设计模式-组合模式 天天热推荐
陕西立夏后突然又降雪 游客只穿了短袖冻惨:专家释疑罕见气候
最成功主播!薇娅夫妇半年收获两家上市公司 价值约4.2亿_世界今头条
全球最资讯丨i7-13700K相当于游戏本的哪个U 结果有点意外
provide sth_provide
Go学习圣经:0基础精通GO开发与高并发架构(1)