100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > ajax 发http请求吗 使用 Ajax 发送 http 请求 (getpost 请求)

ajax 发http请求吗 使用 Ajax 发送 http 请求 (getpost 请求)

时间:2019-09-28 10:58:08

相关推荐

ajax 发http请求吗 使用 Ajax 发送 http 请求 (getpost 请求)

使用 Ajax 发送 http 请求 (get&post 请求)

本文最初发表于博客园, 并在 GitHub 上持续更新前端的系列文章欢迎在 GitHub 上关注我, 一起入门和进阶前端

以下是正文

同步和异步

同步和异步的概念

同步: 必须等待前面的任务完成, 才能继续后面的任务

异步: 不受当前任务的影响

拿排队举例:

同步: 在银行排队时, 只有等到你了, 才能够去处理业务

异步: 在排队的时候, 可以玩手机

异步更新网站

我们在访问一个普通的网站时, 当浏览器加载完 htmlCSSJS 以后, 网站的内容就固定了如果想让网站内容发生更改, 就必须刷新页面才能够看到更新的内容

可如果用到异步更新, 情况就大为改观了比如, 我们在访问新浪微博时, 看到一大半了, 点击底部的加载更多, 会自动帮我们加载更多的微博, 同时页面并没有刷新

试想一下, 如果没有异步刷新的话, 每次点击加载更多, 网页都要刷新, 体验就太不好了

web 前端里的异步更新, 就要用到 Ajax

Ajax

Ajax 的概念

在浏览器中, 我们可以在不刷新页面的情况下, 通过 ajax 的方式去获取一些新的内容

Ajax:Asynchronous Javascript And XML(异步 JavaScript 和 XML)它并不是凭空出现的新技术, 而是对于现有技术的结合 Ajax 的核心是 js 对象: XMLHttpRequest

发送 Ajax 请求的五个步骤

其实也就是 使用 XMLHttpRequest 对象的五个步骤

我们先回忆一下, 一个完整的 HTTP 请求需要的是:

请求的网址请求方法 get/post

提交请求的内容数据请求主体等

接收响应回来的内容

发送 Ajax 请求的五个步骤:

(1)创建异步对象即 XMLHttpRequest 对象

(2)设置请求的参数包括: 请求的方法请求的 url

(3)发送请求

(4)注册事件 onreadystatechange 事件, 状态改变时就会调用

如果要在数据完整请求回来的时候才调用, 我们需要手动写一些判断的逻辑

(5)获取返回的数据

Ajax 请求: get 请求举例(1)index.html:

Document

Ajax发送get请求

// 绑定点击事件

document.querySelector('#btnAjax').οnclick=function(){

// 发送 ajax 请求 需要 五步

// (1)创建异步对象

varajaxObj=newXMLHttpRequest();

// (2)设置请求的参数包括: 请求的方法请求的 url

ajaxObj.open('get','02-ajax.php');

// (3)发送请求

ajaxObj.send();

//(4)注册事件 onreadystatechange 事件, 状态改变时就会调用

// 如果要在数据完整请求回来的时候才调用, 我们需要手动写一些判断的逻辑

ajaxObj.onreadystatechange=function(){

// 为了保证 数据 完整返回, 我们一般会判断 两个值

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

// 如果能够进到这个判断 说明 数据 完美的回来了, 并且请求的页面是存在的

// 5. 在注册的事件中 获取 返回的 内容 并修改页面的显示

console.log('数据返回成功');

// 数据是保存在 异步对象的 属性中

console.log(ajaxObj.responseText);

// 修改页面的显示

document.querySelector('h1').innerHTML=ajaxObj.responseText;

}

}

}

(2)02-ajax.php:

echo'smyhvae';

?>

效果如下:

Ajax 请求: post 请求举例index.html:

Document

Ajax发送get请求

// 异步对象

varxhr=newXMLHttpRequest();

// 设置属性

xhr.open('post','02.post.php');

// 如果想要使用 post 提交数据, 必须添加此行

xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

// 将数据通过 send 方法传递

xhr.send('name=fox&age=18');

// 发送并接受返回值

xhr.onreadystatechange=function(){

// 这步为判断服务器是否正确响应

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

alert(xhr.responseText);

}

};

XMLHttpRequest 对象详解

我们在上一段讲解了使用 XMLHttpRequest 对象的五个步骤本段, 我们讲一下注意事项

发送请求

发送请求的方法:

open(method, url, async);

参数解释:

method: 请求的类型; GET 或 POST

url: 文件在服务器上的位置

async:true(异步)或 false(同步)

另外还有个方法:(仅用于 POST 请求)

send(string);

POST 请求时注意

如果想让 像 form 表单提交数据那样使用 POST 请求, 就需要使用 XMLHttpRequest 对象的 setRequestHeader()方法 来添加 HTTP 头然后在 send() 方法中添加想要发送的数据:xmlhttp.open("POST","ajax_test.php",true);

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

xmlhttp.send("name=smyhvae&age=27");

onreadystatechange 事件

注册 onreadystatechange 事件后, 每当 readyState 属性改变时, 就会调用 onreadystatechange 函数

readyState:(存有 XMLHttpRequest 的状态从 0 到 4 发生变化)

0: 请求未初始化

1: 服务器连接已建立

2: 请求已接收

3: 请求处理中

4: 请求已完成, 且响应已就绪status:

200:"OK"

404: 未找到页面

在 onreadystatechange 事件中, 当 readyState 等于 4, 且状态码为 200 时, 表示响应已就绪

服务器响应的内容

responseText: 获得字符串形式的响应数据

responseXML: 获得 XML 形式的响应数据

如果响应的是普通字符串, 就使用 responseText; 如果响应的是 XML, 使用 responseXML

Ajax 传输 XML

XML 语法

XML(Extensible Markup Language): 可扩展标记语言详细语法可以查看:#

1XML 声明:

第一行的声明, 指定了 XML 版本 (1.0) 以及使用的编码

Document

fox

18

小花花

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。