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 相关文章推荐
利用discuz实现PHP大文件上传应用实例代码
Nov 14 PHP
PHP If Else(elsefi) 语句
Apr 07 PHP
解决cPanel无法安装php5.2.17
Jun 22 PHP
PHP中使用localhost连接Mysql不成功的解决方法
Aug 20 PHP
php实现文本数据导入SQL SERVER
May 17 PHP
PHP实现的json类实例
Jul 28 PHP
PHP内存使用情况如何获取
Oct 10 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
Sep 22 PHP
PHP实现RTX发送消息提醒的实例代码
Jan 03 PHP
PHP中单例模式与工厂模式详解
Feb 17 PHP
Laravel学习基础之migrate的使用教程
Oct 11 PHP
Laravel框架表单验证操作实例分析
Sep 30 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源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
php递归方法实现无限分类实例代码
2014/02/28 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
JS动态创建Table,Tr,Td并赋值的具体实现
2013/07/05 Javascript
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
js定时器的使用(实例讲解)
2014/01/06 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
javascript入门之window对象【新手必看】
2016/11/22 Javascript
jquery获取链接地址和跳转详解(推荐)
2017/08/15 jQuery
Angular将填入表单的数据渲染到表格的方法
2017/09/22 Javascript
使用vue-router完成简单导航功能【推荐】
2018/06/28 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
2018/11/27 Javascript
JS实现li标签的删除
2019/04/12 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
django序列化serializers过程解析
2019/12/14 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
Pytorch实验常用代码段汇总
2020/11/19 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
文史专业毕业生自荐信
2013/11/17 职场文书
教育合作协议范本
2014/10/17 职场文书
兵马俑的导游词
2015/02/02 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
听证通知书
2015/04/24 职场文书
windows server2012 R2下安装PaddleOCR服务的的详细步骤
2022/09/23 Servers