Ajax发送request:GET or POST
用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;
相关推荐
wcqwcq 2020-07-04
84423067 2020-06-12
Guanjs0 2020-11-09
wmsjlihuan 2020-09-15
shishengsoft 2020-09-15
poplpsure 2020-08-17
CyborgLin 2020-08-15
Richardxx 2020-07-26
sunnyhappy0 2020-07-26
knightwatch 2020-07-19
chichichi0 2020-06-16
YAruli 2020-06-13
JF0 2020-06-13
心丨悦 2020-06-11
zkwgpp 2020-06-04
stoneechogx 2020-06-04
litterfrog 2020-05-30
today0 2020-05-26