ajax发起请求 get/post方式

get和post请求的不同:

1、给服务器传递数据量:

get最多2k

post原则上没有限制,php.ini对其限制为8m

2、传递数据的形式不一样:

get在url地址后以请求字符串的形式传递参数

index.php?name=francis&age=25

post则是把form表单的数据给请求出来以xml的形式传递给服务器

3、post更安全


ajax发起请求步骤

1、创建ajax对象:xhr

2、创建http请求:相当于打开浏览器输入地址

xhr.open(请求方式,请求地址[,异步/同步请求]);

3、发送请求:相当于输入地址后按下enter

xhr.send(post请求数据/get为null);


get请求需要注意事项:

1、get请求需要传递的数据写在请求地址后,以请求字符串的形式

2、中文 = &等特殊符号需要编码处理

场景举例:实时判断用户名能否注册

如果用户名为username="francis&age=25",使用get方式发送请求,请求地址"index.php?name="+username,这个时候实际地址就是index.php?name=francis&age=25导致传递了2个参数

解决方法是:php:使用函数urlencode()/urldecode()对数据进行编码/反编码处理

js: 使用函数encodeURIComponent()对数据进行编码处理

这两个编码函数的作用都是使数据变为%后加2位十六进制的数

在服务器端可以直接接收,不需要反编码处理


post请求需要注意事项:

1、post请求需要传递的数据写在send()方法内,也是请求字符串的格式

2、使用post传递数据实质是模仿form表单给服务器传递数据,而form表单给服务器传递数据的格式为xml,所以需要把post传递的数据,即send()方法里的请求字符串,组织为xml格式

使用setRequestHeader()方法设置header头信息,把数据组织为xml格式:

xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');//此方法要紧跟在xhr.open()方法之后

3、传递的数据如果有中文 & =等特殊符号仍需要编码

4、使用post传递数据的同时也可以在请求地址中用get传递数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值