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传递数据
get和post请求的不同:1、给服务器传递数据量:get最多2kpost原则上没有限制,php.ini对其限制为8m2、传递数据的形式不一样:get在url地址后以请求字符串的形式传递参数index.php?name=francis&age=25post则是把form表单的数据给请求出来以xml的形式传递给服务器3、post更安全ajax发起请求步骤:
GET 基本上用于从服务器获得(取回)数据。注释:GET 方法可能返回缓存数据。
POST
也可用于从服务器获取数据。不过,
POST
方法不会缓存数据,并且常用于连同
请求
一起发送数据。
ajax
_GET
发起
请求
步骤
1、实例化
AJAX
对象
var
ajax
Obj = new XMLHttpRequest()...
在使用
Ajax
post
像后台传输数据的时候,并不是都可以使用form提交的。特别是遇到一些自定义样式的控件时候,这时需要自己去组合js对象,并传输到后台。
然而
post
传输数据只能传输字符串才有效,如果直接填对象的话,后台获取是为空值。
为此,参考了网上的一些做法之后。我有了以下做法
//数据直接是js对象的情况
var str = JSON.stringify
一、
ajax
简介
1、是asynchronous javascript and XML 的简写。翻译过来就是异步的javascript和XML,其中XML(Extensible Markup Language)是指可扩展标记语言,是标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
2、
ajax
这一技术能够向服务器
请求
额外的数据而无需卸载页面,会带来更好的用户体验。
3、...
Ajax
常用库jQuery 中的
AJAX
200 可用的500服务器端出现错误304 表示不是从服务器里面读取的,而是从缓冲里面读取的// $.
ajax
()
// 参数是一个 配置的对象
$.
ajax
({
url: "http://localhost:3000/
post
s",
type: "get",
dataType: "json",