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 相关文章推荐
js下函数般调用正则的方法附代码
Jun 22 PHP
php cli 方式 在crotab中运行解决
Feb 08 PHP
打造超酷的PHP数据饼图效果实现代码
Nov 23 PHP
php使用date和strtotime函数输出指定日期的方法
Nov 14 PHP
PHP Streams(流)详细介绍及使用
May 12 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
PHP验证码生成原理和实现
Jan 24 PHP
PHP数据库处理封装类实例
Dec 24 PHP
PHP对象实例化单例方法
Jan 19 PHP
使用composer 安装 laravel框架的方法图文详解
Aug 02 PHP
Mac下关于PHP环境和扩展的安装详解
Oct 17 PHP
PHP高并发和大流量解决方案整理
Dec 24 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
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
JS采用绝对定位实现回到顶部效果完整实例
2016/06/20 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
2016/08/05 Javascript
NodeJS远程代码执行
2016/08/28 NodeJs
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
[01:12]DOTA2 2015年秋季互动指南
2015/11/10 DOTA
Python的另外几种语言实现
2015/01/29 Python
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
python实现验证码识别功能
2018/06/07 Python
超简单使用Python换脸实例
2019/03/27 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
幼儿园庆六一游园活动方案
2014/01/29 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
难忘的一天教学反思
2014/04/30 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
给校长的建议书范文
2015/09/14 职场文书