加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ajax(二)

发布时间:2020-12-15 21:02:07 所属栏目:百科 来源:网络整理
导读:把Ajax(一)中的例子改为,使用http请求为post方式 一、返回数据格式为 xml格式 。 registerProcess.php页面 ?php header( "Content-type:text/xml;charset=GBK" ); header( 'Cache-Control:no-cache' ); //接收数据 $username = $_POST [ 'username' ]; //

把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. }
  13. echo$info;
  14. ?>

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

html页面register.html

 
 
  1. varurl="registerProcess.php";
  2. //要发送的数据
  3. vardata="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. 数据就无需写到url了,可以通过send发送。

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

 
 
  1. functionchuli(){
  2. if(myXmlHttpRequest.readyState==4){
  3. varmes=myXmlHttpRequest.responseText;
  4. varmes_obj=eval("("+mes+")");
  5. document.getElementById("myres").value=mes_obj.res;
  6. }

二、返回数据格式为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. }
  14. echo$info;
  15. ?>

Javascript代码(更改部分)

 
 
  1. functionchuli(){
  2. if(myXmlHttpRequest.readyState==4){
  3. varmes=myXmlHttpRequest.responseText;
  4. varmes_obj=eval("("+mes+")");
  5. document.getElementById("myres").value=mes_obj.res;
  6. }

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读