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开发文件系统实例讲解
Oct 09 PHP
PHP新手上路(八)
Oct 09 PHP
PHP文本操作类
Nov 25 PHP
初学CAKEPHP 基础教程
Nov 02 PHP
选择PHP作为网站开发语言的原因分享
Jan 03 PHP
php setcookie(name, value, expires, path, domain, secure) 参数详解
Jun 28 PHP
php启用sphinx全文搜索的实现方法
Dec 24 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
Feb 12 PHP
php导出生成word的方法
Dec 25 PHP
CodeIgniter读写分离实现方法详解
Jan 20 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
Sep 03 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
Aug 17 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
建站常用13种PHP开源CMS比较
2009/08/23 PHP
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
php在线解压ZIP文件的方法
2014/12/30 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
JQUERY 浏览器判断实现函数
2009/08/20 Javascript
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
2012/02/27 Javascript
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
15个常用的jquery代码片段
2015/12/19 Javascript
js不间断滚动的简单实现
2016/06/03 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
详解React开发必不可少的eslint配置
2018/02/05 Javascript
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
vue之延时刷新实例
2019/11/14 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
css 如何让背景图片拉伸填充避免重复显示
2013/07/11 HTML / CSS
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
VICHY薇姿英国官网:全球专业敏感肌护肤领先品牌
2017/07/04 全球购物
2014教师年度思想工作总结
2014/11/10 职场文书
2014年后备干部工作总结
2014/12/08 职场文书
董事长助理工作总结2015
2015/07/23 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技