浅析Ajax:GET与POST

Asynchronous Javascript And XML
异步的JavaScript和XML;
作用:与服务端交互,读取文件

实现所使用到的类:
XMLHttpRequest:不兼容IE5、IE6;
ActiveXObject:兼容IE5、IE6;

客户端服务端通信是通过http这个协议进行通信的,http有两个常用的方法(GET/POST):
1.GET : 参数传到URL里面;
使用?把接口地址跟参数隔开;多个参数使用&隔开。
2.POST:数据传输到body体里面;
传输的数据相对安全;传输的数据没有大小的限制。
不常用
3.DELETE
4.PUT

JS中以GET方式发送一个请求;

var req = new XMLHttpRequest();
req.open("GET","xxx");
req.send();
req.onreadystatechange = function () {
alert(this.readyState);
};

JS中接受服务端发到客户端里面的内容
XMLHttpRequest > response 回应


同步:一行行代码执行,遇到比较耗时的任务,会等耗时任务执行完毕后
继续执行(有耗时的任务程序会卡住,直到这个任务执行完成);
XMLHttpRequest 默认是异步的;
异步:
open三个参数的意义:XMLHttpRequest ->open(http的请求方
法,请求的地址,同步还是异步)




HTTP协议传输内容
两个方法:
GET:传输的参数是直接拼接到URL中的,与HTML直接传值一样,
需要使用?来隔开传递的参数,如果有多个参数,使用&隔
开每一个参数;
GET特点:
GET参数放到URL里面 -> 不能传比较大的参数(因为URL的大
小有限制); 参数是暴露在URL里面的;

GET传输速度要快一些 -> 只要不涉及到传大文件、密码、比较
重要的,都是用的GET;
POST:传输的参数放到body体中,传输的大小也没有限制;

要想跟服务端交互,得知道跟谁交互,需要知道的内容
1.请求数据的位置是哪儿
主机地址(IP或者域名)
需要指定具体文件的位置
2.需要使用哪一个HTTP 的方法
服务端提供的API要求使用哪个就使用哪个;
3.要传输的参数;
GET:拼接到URL,使用?拼接、使用&分隔
POST:请求参数是在http标题的一个不同部分(名为entity body)传
输的,这一部分用来传输表单信息,因此必须将
Content-type设置为:application/x-www-form- urlencoded。
post设计用来支持web窗体上的用户字段,
其参数也是作为key/value对传输。
但是:它不支持复杂数据类型,
因为post没有定义传输数据结构 的语义和规则。
部分示例代码:

//在不知道值具体是什么类型的时候,
// 可以通过null赋值;

var result = null;
var request = new XMLHttpRequest();

//设置请求
//设置请求的http的方法GET
//设置请求的服务器位置:http://route.showapi.com/255-1
request.open("GET","http://route.showapi.com/255-1");
//request.send();

//监听客户端传输数据到服务端的传输状态


request.onreadystatechange = function () {

//readyState:读取传输的状态
console.log(this.readyState);

if(this.readyState ===XMLHttpRequest.DONE){
//response http的回应,里面有可能有咱们需要的值


alert("交互完成");
result = request.response;
}
};
request.send();
console.log(result);


-------------------------------------------------------------------------------------------------------------------
  • 1
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

救不了你的小白

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值