Ajax发送request:GET or POST
程序员文章站
2022-06-10 11:23:46
...
用Ajax发送请求到服务器端有Get跟Post两种方式:
GET:
xmlhttp.open("GET","demo_get.asp?fname=Henry&lname=Ford",true); xmlhttp.send();
用Get的方式发送,要把参数编辑到URL中。用“?”隔离文件地址,用“&”分隔各个参数。
POST:
xmlhttp.open("POST","demp_post.asp",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("fname=Henry&lname=Ford");
function send(arg) { CreateXMLHttpRequest(); xmlhttp.onreadystatechange = callhandle; //xmlhttp.open("GET","Default.aspx?goback=yes&arg=" + arg,true); xmlhttp.open("POST","Default.aspx?goback=yes",true); xmlhttp.setRequestHeader("Content-Length",arg.lenght); xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;"); //用POST的时候一定要有这句 xmlhttp.send(arg); // arg ist a JSON object or some other object }
用Post发送,需要在send函数中指定发送的参数(如果没有参数,send(null))。另外还需要设置头信息。
相比POST,用Get方式发送request更快,更简单。但是在以下的集中情况中,应该用POST来发送Request:
- A cached file is not an option (update a file or database on the server)
- Sending a large amount of data to the server (POST has no size limitations)
- Sending user input (which can contain unknown characters), POST is more robust and secure than GET
Asynchronous - True or False?
XMLHttpRequest.open("GETorPost",url,Asynchronous)中最后一个参数表示是否是异步处理(true,false)。
如果Asynchronous=true,则表示,回调函数将会在Server端的Response正确返回的时候再执行:
xmlhttp.onreadystatechange=function() { if(xhr.readyState==4){ if(xhr.status==200){ doSomething(); } } xmlhttp.open("GET","ajax_info.txt",true); xmlhttp.send();
如果Asynchronous=false(不推荐),JS代码不会继续运行,直到服务器已经有响应。需要注意的是,如果服务器因为某种原因响应缓慢,或者长时间没有相应,将导致页面卡顿甚至卡死。
在用false做参数的情况下,不需要写onreadystatechange function,只需要将要执行的动作放到send函数之后即可
xmlhttp.open("GET","ajax_info.jsp",false); xmlhttp.send(); document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
上一篇: Ajax创建XMLHttpRequest
推荐阅读
-
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
-
Android下通过httpClient发送GET和POST请求的实例代码
-
C#模拟http 发送post或get请求的简单实例
-
smarty模板中使用get、post、request、cookies、session变量的方法
-
php发送get、post请求的6种方法简明总结
-
python通过get,post方式发送http请求和接收http响应的方法
-
ajax请求post和get的区别以及get post的选择
-
关于Ajax的get与post浅分析,同步请求与异步请求;
-
Jquery中ajax提交表单几种方法(get、post两种方法)
-
AJAX使用get与post模式的区别分析