把Ajax(一)中的例子改为,使用http请求为post方式

一、返回数据格式为xml格式。

 registerProcess.php页面

 
  
  1. <?php 
  2. header("Content-type:text/xml; charset=GBK");  
  3. header('Cache-Control:no-cache'); 
  4. //接收数据 
  5. $username=$_POST['username']; 
  6. //http响应。过程3 
  7. $info = ""
  8. if($username=="xiyou"){ 
  9.     $info = "<res><mes>用户名不可用,对不起</mes></res>"
  10. }else
  11.     $info = "<res><mes>用户名可用</mes></res>"
  12. echo $info
  13. ?> 

header("Content-Type:text/xml;charset:utf-8");//告诉浏览器返回的是xml格式
header('Cache-Control:no-cache');//浏览器不缓存数据

 html页面register.html

 
  
  1. var url = "registerProcess.php"
  2. //要发送的数据 
  3. var data = "username="+document.getElementById("username").value; 
  4. //打开请求 
  5. myXmlHttpRequest.open("post",url,true); 
  6. //指定回调函数 
  7. myXmlHttpRequest.onreadystatechange=chuli; 
  8. //必须要加下面这句 
  9. myXmlHttpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
  10. //如果是get请求则填入null即可;如果是post请求则填入实际的数据 
  11. myXmlHttpRequest.send(data); 
  12.  
  13. 数据就无需写到url了,可以通过send发送。 

 建议使用post方式,携带信息多

 
  
  1. function chuli(){ 
  2.     if(myXmlHttpRequest.readyState==4){ 
  3.     var mes = myXmlHttpRequest.responseText; 
  4.     var mes_obj = eval("("+mes+") "); 
  5.     document.getElementById("myres").value = mes_obj.res; 

 

二、返回数据格式为JSON

PHP代码

 
  
  1. <?php 
  2. header("Content-type:text/html; charset=GBK");  
  3. header('Cache-Control:no-cache'); 
  4. //接收数据 
  5. $username=$_POST['username']; 
  6. //http响应。过程3 
  7. $info = ""
  8. //$info是JSON数据格式的字符串 
  9. if($username=="xiyou"){ 
  10.     $info = "{'res':'用户名不可用,对不起'}"
  11. }else
  12.     $info = "{'res':'用户名可用'}"
  13. echo $info
  14. ?> 

 Javascript代码(更改部分)

 
  
  1. function chuli(){ 
  2.     if(myXmlHttpRequest.readyState==4){ 
  3.     var mes = myXmlHttpRequest.responseText; 
  4.     var mes_obj = eval("("+mes+") "); 
  5.     document.getElementById("myres").value = mes_obj.res; 

 

JSON只是一种文本字符串。它被存储在responseText属性中
为了读取存储在responseText属性中的JSON数据,需要根据Javascript的eval语句。
函数eval会把一个字符串当作它的参数。然后这个字符串会被当作Javascript代码来执行。
因为JSON的字符串是由Javascript代码构成的,所以它本身是可执行的。


JSON(Javascript Object Notation)一种简单的数据格式,比xml更轻巧,JSON是Javascript原生格式;
这意味着在Javascript中处理JSON数据不需要任何特殊的API或工具包。
JSON的规则很简单:对象是一个无序的“名称/值”集合。一个对象以“{”开始,“}”结束。
每个“名称”后跟一个“:”(冒号); ‘名称/值’对之间使用“,”(逗号)分隔。
规则如下:
1. 映射用冒号表示。名称:值。
2. 并列的数据之间用逗号分隔。名称1:值1, 名称2:值2;
3. 映射的集合(对象)用大括号表示。{名称1:值1,名称2:值2}
4. 并列数据的集合(数组)用方括号(“[]”)表示。
[
    {名称1:值1,名称2:值2},
    {名称1:值1,名称2:值2},
]
5. 元素值可具有的类型:string,number,object,array,true,false,null