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",