ajax基础学习(带案例)

一寸飞 2022/6/8 23:29:17

小庆子 11:04:21

HTTP

http一种无状态的网络协议

http的请求过程

1.建立TCP网络连接(与服务器联通)
2.客户端发送请求头+请求体
3.服务器应答响应头+响应体
4.关闭TCP
5.客户端(浏览器)渲染内容

请求头的组成

**请求行(请求报头)
-GET 请求方法
-/ 请求的资源地址
-/HTTP、1.1协议

请求头信息
Accept 浏览器接受的类型
Cookie 会话信息
User-

响应头的组成

响应行
HTTP/1.1协议
200 响应码
OK 状态
响应头信息
Content-Type返回的数据类型
空行
响应体(返回的网页)

请求方法

参考链接:【传送门】(https://baike.baidu.com/item/RESTful/4406165)
get 获取
post 添加
put 修改
delete 删除
trace 回显
head 只发送头信息
options 选项

响应码

【响应码大全】(https://blog.csdn.net/weixin_43984157/artlcle/detalls/120021418)
1.XX 消息
2xx 成功 200响应成功
3xx 重定向 307临时重定向
4xx 客户端错误 404报错
5xx 服务器错误 500服务器错误

XMLHTTPRequst(xhr)

ajax是一项综合技术,全程Asyncs Javascrip And Xml 异步javascript和HTML
核心是使用XMLHttpReqeust与服务器异步交换数据,通过js动态操作dom实现页面无刷新更新视图

同步与异步

JavaScript默认是从上向下执行代码,上一行执行完毕,下开始执行下一行,称为同步,柱塞试的

异步是非柱塞执行代码,实现方式:
1.事件响应
2.通过回调函数实现异步(setTimeout)
3.promise

ajax优缺点

优点
最大的优点:无刷新更新页面视图
异步(不影响别的代码)
缺点
对搜索引擎SEO不友好(内容是通过JavaScript加载的,百度没办法收录你的内容,百度搜索对应关键字,搜索不到你的网页)

get请求

var xhr = new XMLttpRequest();
xhr.open('get','./kongfu.txt')
xhr.send();
xhr.onreadystatechange = function(){
   if(xhr.readyStata == 4){
      if(xhr.status==200){
         console.log(xhr.responseText)
        }
     }
}

post请求

var xhr = new XMLttpRequest();
xhr.open('post','http://520mg.com/ajax/echo.php')
xhr.setRequestHeader('Content-Type','application/x-www-for-urlencoded')
xhr.send('name=mumu&age=18');
xhr.onreadystatechange = function(){
   if(xhr.readyStata == 4){
      if(xhr.status==200){
         console.log(xhr.responseText)
         }
     }
}

JQuery中的ajax

get请求

post请求

JQuery中的ajax

.load 方法

语法
…js
el.load(url)

解释
把url的内容通过ajax加载到el内部
**示例 **
…js
$(‘.container’).load('./kongfu.text);

$.get()方法

通过get请求方式,获取内容
语法

$.get(url)
.then(res=>res)
.cath(xhr=>xhr)

.then 的前面一行没有分号结尾
**示例 **
向服务器请求一条笑话信息

$.get('http://520mg.com/mi/list.php?page=1'.then(res=>{
// res 就是服务器返回的内容
// .then方法就是请求成功后获取
})
.catch(xhr=>{
//.catch就是请求失败(通常是网络错误)响应方法
//xhr 就是JQuery封装的XMLHTTPRequest对象
}

$.post() 方法

以post方法向服务器发起请求
语法

$.post(url,data)
.then(res=>res)
.catch(xhr=>xhr)

// url 请求的地址
// data 请求体(发给服务器的数)
// .then 成功响应方法
// .catch 网络失败响应方法
// res 服务器返回数据 response响应的简写,是个形参起任何名字都可以

示例

//$.post('http://520mg.com/ajax/echo.php','name=木木&age=18')
$.post ('http://520mg.com/ajax/echo.php',{name=木木&age=18}.then(res=>{
        console.log(res)
})
.catch(xhr=>{
        console.error(xhr)
})

$.ajax方法

$.ajax() 方法是JQuery的底层方法,可以传入定义的参数最多,更加灵活

JQ中的ajax方法分3层封装的
第一层$ajax()
第二层
$.get();
$.post();
第三层
el.load()加载
$.getJSON()加载josn数据的
$.getScript()加载并执行js

语法

$.ajax({
url,  //请求地址
method,  //请求的方法get,post,delete,put
data,       //请求的数据
dataType  // 返回数据列席josn,jsonp,text
xhrFields:{withCredentials:true}//用来跨域
success:function(res){}//成功回调函数res服务器返回的数据
error:function(xhr){}  //等同于,then,catch
}.then(res=>res)
.catch(xhr=>xhr)

**案列**
```js
$.ajax({
            url:'https://520mg.com/member/index_login2.php',
            method:'POST',
            data:{dopost:'exit'},   //退出的参数
            dataType:"json"        //返回的数据格式是json
            xhrFieds:{withCredentials:true} //跨域
}.then(res=>{
         alert(res)
}.catch(err=>console.error(err))

$.ajax的参数

参数名解释示例
url请求的地址-
method请求的方法get,post,put,delete
data请求的数据{name:“mumu”,age:18}
dataType返回数据类型xml,text,json,jsonp
xhrFields携带请求头部信息
(用来跨域)
{withCredentials:true}
success成功的回调函数-
error失败回调函数-
beforeSend发送前的回调函数
显示加载提示
-
complete加载完成的回电函数
关闭加载提示
-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值