Ajax的使用(最详细!!!)

seo不友好(搜索引擎搜索不到关键字)

1.创建ajax对象

//可以在点击事件里面创建

const xhr=new XMLHttpRequest();

2.发送请求

//请求方法 第一个参数 请求方式第二个是请求路径

//初始化请求

//同源策略可以省略协议和域名,发送时会自动添加上

//xhr.open(‘GET’,‘/server’);

xhr.open(‘GET’,‘http://127.0.0.1:8000/server’);

//发送请求

xhr.send();

//on 当

//readystate是xhr对象的属性,表示状态的意思,有五个值

//change 改变的意思

//0:未初始化 1:open方法调用完毕 2:send方法调用完毕 3:服务端返回了部分的结果 4:服务端返回所有结果

//会触发四次

xhr.onreadystatechange=function(){

//当结果全部返回的时候且状态码为200

if(xhr.readyState=4&&xhr.status=200){

console.log(xhr.status) //状态码

console.log(xhr.statusText)//状态码字符串

console.log(xhr.getAllResponseHeaders()) //所有响应头

console.log(xhr.response) //所有响应体

}

}

3.get请求参数

//?号后面写参数 用&符号分隔 键值对方式

xhr.open(‘GET’,‘http://127.0.0.1:8000/server?a=100&b=200’);

//可以在 query String Parameters 里面做一个请求参数预览

4.post请求发送

//请求方式都为大写

xhr.open(‘POST’,‘http://127.0.0.1:8000/server’);

//send里面不仅仅可以发送请求,还可以携带参数发送

xhr.send(‘a=100&b=200’)

5.设置请求头信息

//一般采用预定义请求头信息,如果需要设置自定义请求头则需要在服务器端开启允许设置自定义请求头

//content-type 是设置请求体内容类型 固定写法

xhr.setRequestHeader(‘Content-Type’,‘application/x-www-form-urlencoded’);

//自定义请求头信息

//需要在后端开启允许设置自定义请求头

//第一个参数是name 第二个是值

xhr.setRequestHeader(‘name’,‘1’);

6.对返回json参数进行操作

//后端不支持接受对象,所以采用发送字符串的方式

//可以调用json方法

//对返回的参数进行操作

JSON.parse(参数)

//设置对json数据自动转换

设置响应体数据类型

xhr.responseType=‘json’;

BUG ie缓存问题

//问题:ie浏览器,发送请求会存在缓存,下次请求新的数据返回但还是旧的数据

//解决方案:可以在接口请求参数后面添加当前时间戳 Date.now()

xhr.open(‘POST’,'http://127.0.0.1:8000/server?t='Date.now);

7.超时与网络异常响应

//用于网络请求超时和网络异常给用户的提醒比较友好

//请求超过2秒就自动取消

xhr.timeout=2000;

//超时回调

xhr.ontimeout=function(){

alert(‘网络超时’)

}

//网络异常操作

xhr.οnerrοr=function(){

alert(‘网络异常’)

}

8.手动取消请求

//取消请求

xhr.abort();

重复发送问题解决

//可以通过标识变量进行判断,发送请求改成false,发送成功在改回true

//也可以通过判断标识是否取消请求

以上是原生发送的请求,下面介绍的是前端常用框架发送请求

第一个框架:jquery 基于回调函数进行发送请求

//第一个是路径 第二个是数据 第三个是回调函数 第四个是设置响应体方法

//get请求

$.get(‘http://127.0.0.1:8000/jquery’,{a:100},function(res){

console.log(res)

},‘json’)

//post

$.post(‘http://127.0.0.1:8000/jquery’,{a:100},function(res){

console.log(res)

})

//jquery通用方法 post还可以设置请求体

$.ajax({

//url

url:‘http:127.0.0.1/scfe’,

//类型

type:‘GET’,

//请求头信息

headers:{

a:100,b:200

},

//响应体结果类型

dataType:“json”,

//数据

data:{},

//成功回调

success:function(){},

//超时时间

timeout:2000,

//失败回调

error:function(){}

})

Axios 库发送ajax请求,是目前最为热门的,是vue和react最为推荐的

基于promise发送请求

可以安装也可以在线链接引用

npm i axios

配置baseURL

axios.defaults.vaseURL=‘http://127.0.0.1:8000’;

//配置过后,axios请求每次都会在前面加上这个,后面直接写接口名称就行

发送请求

//get请求 第一个参数是url 第二个是data

axios.get(‘/server’,{

//url参数

params:{

a:100,b:200

},

//请求头信息

headers:{

name:‘100’,

age:‘200’

}

//.then查看是否发送成功

}).then(res=>{

console.log(res)

})

//post发送请求 第一个路径 第二个请求体 第三个其他选项

axios.post(‘/server’,{user:“112”,age:“21”},{

//url参数

params:{

a:100,b:200

},

//请求头信息

headers:{

name:‘100’,

age:‘200’

}

//.then查看是否发送成功

}).then(res=>{

console.log(res)

})

//通用性方法发送请求

axios({

//请求方法

method:“POST”,

//url

url:“/sert”,

//url参数

params:{

user:‘huhu’,

age:“dd”

},

//请求头信息

headers:{

a:100,

b:200

},

//请求体信息

data:{

a:1,

b:2

}

}).then(res=>{

console.log(res)

})

ferch()函数发送ajax请求,返回一个promise对象

//第一个参数是url 第二个是配置对象

fetch(‘http://127.0.0.1:8000/sever’,{

//请求方法

method:‘POST’,

//请求头

headers:{

name:111

},

//请求体

body:‘user=1&age=2’

}).then((res)=>{

console.log(res)

//解析成json

res.json()

})

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

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

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

img

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

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

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。

我特地针对初学者整理一套前端学习资料,免费分享给大家,戳这里即可免费领取

前端路线图

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

[外链图片转存中…(img-fmLz2sgl-1713454442263)]

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

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

[外链图片转存中…(img-MIDzXpfR-1713454442263)]

最后

你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。

我特地针对初学者整理一套前端学习资料,免费分享给大家,戳这里即可免费领取

[外链图片转存中…(img-r57Rt6zZ-1713454442263)]

vue.js的36个技巧

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值