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 相关文章推荐
php的array_multisort()使用方法介绍
May 16 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
Dec 28 PHP
php记录代码执行时间(实现代码)
Jul 05 PHP
php天翼开放平台短信发送接口实现方法
Dec 22 PHP
php使用PDO方法详解
Dec 27 PHP
PHP实现GIF图片验证码
Nov 04 PHP
PHP的时间戳与具体时间转化的简单实现
Jun 13 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
Oct 10 PHP
wordpress网站转移到本地运行测试的方法
Mar 15 PHP
PDO::commit讲解
Jan 27 PHP
PHP SESSION机制的理解与实例
Mar 22 PHP
laravel使用数据库测试注意事项
Apr 10 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
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
PHP中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
2019/08/05 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
javascript开发技术大全-第3章 js数据类型
2011/07/03 Javascript
js或者jquery判断图片是否加载完成实现代码
2013/03/20 Javascript
JavaScript中操作Mysql数据库实例
2015/04/02 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
html判断当前页面是否在iframe中的实例
2016/11/30 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
Angular4学习笔记之准备和环境搭建项目
2017/08/01 Javascript
vue cli 全面解析
2018/02/28 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
Python实例之wxpython中Frame使用方法
2014/06/09 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
python绘制中国大陆人口热力图
2018/11/07 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
Python持续监听文件变化代码实例
2020/07/22 Python
资产经营总监岗位职责
2013/12/04 职场文书
就业自我评价
2014/02/04 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
圣诞节活动策划方案
2014/06/09 职场文书
毕业实习感受与体会
2015/05/26 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书
python实现求纯色彩图像的边框
2021/04/08 Python