当AJAX将客户端请求发送到服务器时,我们会使用XMLHttpRequest对象的open()和send()方法。
open(method,url,async)
例:xmlhttp.open(“GET”,“chuansinfo.txt”,true)
send(string);
例:xmlhttp.send();
其实中method是指请求类型,通常我们的请求类型有两种:GET和POST。
在我们分析AJAX中到底是使用GET请求还是POST请求之前,我们必须先确定GET与POST的区别,GET与POST请求区别见表。
GET请求会将数据添加到URL中,通过这种方式发送到服务器,通常会使用“?”代表URL地址的结尾与参数的开端,后面接的参数格式为“名称=值”,如果有多个参数,那么参数与参数之间使用“&”来区分。
POST请求是将数据放在HTTP HEADER中,其组织方式可以是“&”连接方式,也可以是分割符方式,并且参数是可隐藏的,相比于GET请求,POST请求发送大量数据会更方便。
但是我们不建议使用AJAX发送大量数据,因为这样不能节约时间,花费的时间会很长,我们建议将大量数据分成多个只传递少量数据的AJAX调用,这样可以提高性能。
所以我们不能单纯的通过发送数据量的大小来决定是使用GET还POST,而应该按到目的来选择,如果调用是要检索服务器上的数据则使用GET。如果检索的值会随时间和更新进程的改变而改变,则要在GET调用中添加一个时间参数,这样再次调用时就不会浏览器缓存中的数据而导致访问的信息出错,因为GET请求会在浏览器中进行缓存。当然如果发送的数据是任意的数据,那么可以使用POST请求。
雅虎邮箱团队发现一个现象,在使用XMLHttpRequest对像发送请求时,POST在浏览器中会分成两步来实现:首先发送头文件,然后再发送数据。所以最好使用GET,这样可以节约一些时间,因为GET只需要一个TCP数据包发送(除非有很多的cookie)。IE中最大的URL长度是2K,所以如果你发送的数据超过2K,你可能无法使用GET,当能可以分成多个少量数据的请求进行发送。
所以一般我们建议在使用AJAX发送请求时,我们通常使用GET发送请求信息。除非请求需要修改存储中的数据,如添加、更新、删除,或者是以其他方式更改服务器的状态,如创建文件等,这种情况下则使用POST请求。