封装ajax请求

xml.open(),当发送GET请求的时候,open方法不需要传递参数,当发送的是post请求的时候,这个send()方法就需要添加上传递的内容。实例代码:xml.open({JSON.stringify(name:'Jimmy',age:22}))

  • 监听状态的变化

使用异步对象的onreadystatechange属性来判断请求状态,实例代码:xml.onreadystatechange = ()=>{}来进行对不同状态下的处理

readyState属性,表示的是连接状态的属性值,有1-4,其中当属性值为4时,代表的是连接成功。

status属性,表示的是服务器反馈的状态码,200-300之间和一个特殊的304表示的都是请求成功,其中304表示的是使用缓存返回值,这个状态吗也是尤为的重要,一般500的状态码表示的是服务器错误。

  • 处理的返回结果

当以上的一些列判断都成功时,说明已经获取到了服务器的值,我们可以使用responseText属性来接收我们从服务器上获取的值。

GET请求
  • get请求也是可以传值的,get请求传的值一般都是直接在url中能够体现,例如:http://127.0.0.1:8080/name?name=jimmy&age=22,这种类型的就是get传值,ajax发送get请求的时候按照上面的步骤正常的操作就行了。
POST请求
  • 利用ajax发送post请求时如果不传值,则按照如上的5步操作就行,只是因为post请求传递参数时数据实在请求体中的,所以需要在open()方法和send()方法之间多加一条语句xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"),之后send()方法中传递参数例如xml.open({JSON.stringify(name:'Jimmy',age:22}))
跨域问题

在前后端之间的数据交互上,经常会发生跨域问题,原因时前后端之间遵循的原则是同源原则,意思是两个点之间必须是在同一个源下,也就是说协议,域名,端口必须都保持一致的情况下,两者之间才可以进行交互,两者之间只要有一点不一样,就会发生跨域问题。

为了避开这个问题,现在常常有三种解决方案,分别是:

  • jsonp结局跨域:jsonp请求的实质是利用我们前端的script标签进行访问数据,script标签是不会触发跨域的,这个方法使用的很多,但是步推荐使用。

  • 前端j解决跨域:创建proxy代理的方式解决跨域,这个方法只需要处理前端,后端的代码可以不动。

  • 后端解决跨域:在node.js中通过类似使用中间键的概念,在路由之前对本身进行处理,因为我demo中使用的是原生的http模块来写的,所以我展示一个http模块解决跨域的方法。

在这里插入图片描述

细节知识点
  • url中是不能够传递中文的,可能我们在浏览器写的时候可以写中文,是因为浏览器默认会将所有文字转码,在JS中也是很容易就可以操作,JS自带两个个工具方法encodeURI()decodeURI()两个方法是分别对中文进行转码和解码的操作

  • 当想要手动的终止请求,可以使用xml.absort()方法其中xml就是我们创建的异步对象。

  • 做为程序员,始终都要考虑到用户的体验,当用户因为网络的原因,访问时间过长的时候,我们就应该终止访问的进行,这点就是我们封装自己的ajax请求中需要做的事情了。

自己封装的ajax图如下:

在这里插入图片描述
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

最后

文章到这里就结束了,如果觉得对你有帮助可以点个赞哦,如果有需要前端校招面试题PDF完整版的朋友可以点击这里即可获取,包括答案解析。

tps://bbs.csdn.net/topics/618191877),包括答案解析。**

[外链图片转存中…(img-fDzdYwP4-1711768231435)]

  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值