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中用文本文件做数据库的实现方法
Mar 27 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
Jun 28 PHP
PHP教程之PHP中shell脚本的使用方法分享
Feb 23 PHP
解析htaccess伪静态的规则
Jun 18 PHP
PHP获取一段文本显示点阵宽度和高度的方法
Mar 12 PHP
php简单实现sql防注入的方法
Apr 22 PHP
PHP用户验证和标签推荐的简单使用
Oct 31 PHP
PHP中的日期时间处理利器实例(Carbon)
Jun 09 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 PHP
laravel-admin select框默认选中的方法
Oct 03 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 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使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
js实现iframe动态调整高度的代码
2008/01/06 Javascript
jquery.validate使用攻略 第二部
2010/07/01 Javascript
js循环改变div颜色具体方法
2013/06/25 Javascript
动态读取JSON解析键值对的方法
2014/06/03 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
2016/10/14 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
python 字符串split的用法分享
2013/03/23 Python
python 实现删除文件或文件夹实例详解
2016/12/04 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
python绘制圆柱体的方法
2018/07/02 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
2019/06/27 Python
Django中信号signals的简单使用方法
2019/07/04 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
python 实现return返回多个值
2019/11/19 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
2020/04/21 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
2020/06/28 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
县长“四风”对照检查材料思想汇报
2014/10/05 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
学习群众路线的心得体会
2014/11/05 职场文书