AJAX的使用方法详解


Posted in PHP onApril 29, 2017

AJAX作为异步传输,局部刷新非常方便,用处很广!

首先,对于AJAX的使用有4步:

1.创建AJAX对象

var xmlHttp = new XMLHttpRequest();

2.建立连接 (‘提交方式',‘Url地址')

xmlHttp.open('get','./AJAX_XML.xml');

3.判断ajax准备状态及状态码

xmlHttp.onreadystatechange = function(){

    if (xmlHttp.readyState==4 && xmlHttp.status==200) {
  }
}

4.发送请求

xmlHttp.send(null);    //get方式参数为null,post方式,参数为提交的参数

以下以异步提交用户名(输入用户名之后,异步提交后台判断,前台立马提示是否已注册,不用提交时再判断!)

GET方式提交

xx.html

<script type="text/javascript">
window.onload=function(){
  document.getElementById('username').onblur=function(){
    var name=document.getElementById('username').value;
    var req=new XMLHttpRequest();
    req.open('get','4-demo.php?name='+name);
    req.onreadystatechange=function(){
      if(req.readyState==4 && req.status==200){
        alert(req.responseText);
      }
    }
    req.send(null);  //如果send()方法中没有数据,要写null
  }
}
</script>

用户名:  <input type="text" name="" id="username">

xx.php

<?php
print_r($_GET);
?> 

1、   IE不支持中文

2、   =、&与请求的字符串的关键字相混淆。

POST提交

xx.html

<script type="text/javascript">
window.onload=function(){
  document.getElementById('username').onblur=function(){
    var name=document.getElementById('username').value;
    name=encodeURIComponent(name);
    var req=new XMLHttpRequest();
    req.open('post','5-demo.php?age='+20);
    req.onreadystatechange=function(){
      if(req.readyState==4 && req.status==200){
        alert(req.responseText);
      }
    }
  req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    req.send('name='+name);  
  }
}
</script>

用户名: <input type="text" name="" id="username">

xx.php

<?php
print_r($_POST);
print_r($_GET);
?>

1、通过send()发送数据

2、必须设置setRequestHeader()将传递的参数转成XML格式

3、post提交可以直接提交中文,不需要转码

4、post请求中的字符也会和URL中的&、=字符相混淆,所以建议也要使用encodeURIComponent()编码

5、在POST提交的同时,可以进行GET提交

解决 IE不支持中文   =、&与请求的字符串的关键字相混淆 问题

在js中通过encodeURIComponent()进行编码即可。

window.onload=function(){
  document.getElementById('username').onblur=function(){
    var name=document.getElementById('username').value;
    name=encodeURIComponent(name);  //编码
    var req=new XMLHttpRequest();
    req.open('get','4-demo.php?name='+name);
    req.onreadystatechange=function(){
      if(req.readyState==4 && req.status==200){
        alert(req.responseText);
      }
    }
    req.send(null);  //如果send()方法中没有数据,要写null
  }
}

1、req.responseText:获取返回的字符串

2、req.responseXML:按DOM结构获取返回的数据

注意post/get两种提交方式的区别!

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

PHP 相关文章推荐
超级简单的发送邮件程序
Oct 09 PHP
PHP实现网上点歌(二)
Oct 09 PHP
echo, print, printf 和 sprintf 区别
Dec 06 PHP
实用函数7
Nov 08 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
Jun 17 PHP
linux下实现定时执行php脚本
Feb 13 PHP
PHP获取QQ达人QQ信息的方法
Mar 05 PHP
PHP封装的字符串加密解密函数
Dec 18 PHP
iOS10推送通知开发教程
Sep 19 PHP
php解析mht文件转换成html的实例
Mar 13 PHP
PHP CURL使用详解
Mar 21 PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 #PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 #PHP
PHP实现ASCII码与字符串相互转换的方法
Apr 29 #PHP
PHP中Notice错误常见解决方法
Apr 28 #PHP
PHP实现查询手机归属地的方法详解
Apr 28 #PHP
PHP中Cookie的使用详解(简单易懂)
Apr 28 #PHP
PHP解决中文乱码
Apr 28 #PHP
You might like
用php实现的下载css文件中的图片的代码
2010/02/08 PHP
解析php file_exists无效的解决办法
2013/06/26 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
Array.prototype.slice 使用扩展
2010/06/09 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
jquery css实现邮箱自动补全
2016/11/14 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
[js高手之路]HTML标签解释成DOM节点的实现方法
2017/08/31 Javascript
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
微信小程序仿知乎实现评论留言功能
2018/11/28 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
Python函数的周期性执行实现方法
2016/08/13 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
python使用opencv实现马赛克效果示例
2019/09/28 Python
django实现模型字段动态choice的操作
2020/04/01 Python
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
会计电算化个人自我评价
2013/11/17 职场文书
会计专业的自荐信
2013/12/12 职场文书
晚会邀请函范文
2014/01/24 职场文书
红色故事演讲稿
2014/05/22 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
个人租房协议书范本
2014/09/30 职场文书
行政助理岗位职责
2015/02/10 职场文书
会议通知格式范文
2015/04/15 职场文书
在职证明书模板
2015/06/15 职场文书
如何用Laravel包含你自己的帮助函数
2021/05/27 PHP
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
MySQL 十大常用字符串函数详解
2021/06/30 MySQL