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 读取文件内容代码(txt,js等)
Dec 06 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
Jun 25 PHP
通过dbi使用perl连接mysql数据库的方法
Apr 16 PHP
PHP生成自适应大小的缩略图类及使用方法分享
May 06 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
Jan 07 PHP
php自定义扩展名获取函数示例
Dec 12 PHP
php pdo操作数据库示例
Mar 10 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
Aug 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自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
php中的单引号、双引号和转义字符详解
2017/02/16 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
网页javascript精华代码集
2007/01/24 Javascript
javascript void(0)的妙用
2009/10/21 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
2018/06/08 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
2018/06/22 Javascript
Vue实现类似Spring官网图片滑动效果方法
2019/03/01 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
关于小程序优化的一些建议(小结)
2020/12/10 Javascript
[02:08]我的刀塔不可能这么可爱 胡晓桃_1
2014/06/20 DOTA
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
解决python matplotlib imshow无法显示的问题
2018/05/24 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
解决numpy矩阵相减出现的负值自动转正值的问题
2020/06/03 Python
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
德国家用电器购物网站:Premiumshop24
2019/08/22 全球购物
银行职员思想汇报
2013/12/31 职场文书
银行批评与自我批评
2014/02/10 职场文书
2014年中学生检讨书大全
2014/10/09 职场文书
python基础学习之生成器与文件系统知识总结
2021/05/25 Python
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android
MybatisPlus EntityWrapper如何自定义SQL
2022/03/22 Java/Android
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL
Java界面编程实现界面跳转
2022/06/16 Java/Android