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 相关文章推荐
解决控件遮挡问题:关于有窗口元素和无窗口元素
Jan 28 PHP
深入理解PHP原理之异常机制
Aug 21 PHP
使用PHP求两个文件的相对路径
Jun 20 PHP
PHP编程中的常见漏洞和代码实例
Aug 06 PHP
php读取目录及子目录下所有文件名的方法
Oct 20 PHP
一个经典实用的PHP图像处理类分享
Nov 18 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
Mar 03 PHP
PHP curl使用实例
Jul 02 PHP
php实现简单的上传进度条
Nov 17 PHP
Yii支持多域名cors原理的实现
Dec 05 PHP
PHP yield关键字功能与用法分析
Jan 03 PHP
PHP中-&gt;和=&gt;的含义及使用示例解析
Aug 06 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
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
2015/12/08 PHP
PHP实现git部署的方法教程
2017/12/19 PHP
php使用socket调用http和smtp协议实例小结
2019/07/26 PHP
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
Express.JS使用详解
2014/07/17 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
使用Angular CLI生成路由的方法
2018/03/24 Javascript
Vue单页应用引用单独的样式文件的两种方式
2018/03/30 Javascript
js使用formData实现批量上传
2020/03/27 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
2019/08/12 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
在weex中愉快的使用scss的方法步骤
2020/01/02 Javascript
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
Python星号*与**用法分析
2018/02/02 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
迪拜领先运动补剂零售品牌中文站:Sporter商城
2019/08/20 全球购物
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
大学三年计划书范文
2014/04/30 职场文书
2014年药房工作总结
2014/11/22 职场文书
2014年小学校长工作总结
2014/12/08 职场文书
四群教育工作总结
2015/08/10 职场文书
redis哨兵常用命令和监控示例详解
2021/05/27 Redis
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技