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生成html分页列表的代码
Mar 18 PHP
PHP syntax error, unexpected $end 错误的一种原因及解决
Oct 25 PHP
PHP获取MAC地址的具体实例
Dec 13 PHP
php中stream(流)的用法
Mar 25 PHP
使用ThinkPHP+Uploadify实现图片上传功能
Jun 26 PHP
PHP开发框架kohana3 自定义路由设置示例
Jul 14 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
Sep 16 PHP
smarty模板引擎之分配数据类型
Mar 30 PHP
PHP简单判断字符串是否包含另一个字符串的方法
Mar 25 PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 PHP
php 防护xss,PHP的防御XSS注入的终极解决方案
Apr 01 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判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
jquery 双色表格实现代码
2009/12/08 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
2017/03/08 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
vue resource post请求时遇到的坑
2017/10/19 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
Node.js操作系统OS模块用法分析
2019/01/04 Javascript
Jquery Datatables的使用详解
2020/01/30 jQuery
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
python机器学习之神经网络实现
2018/10/13 Python
python3下载抖音视频的完整代码
2019/06/05 Python
关于Python中定制类的比较运算实例
2019/12/19 Python
Python面向对象封装操作案例详解
2019/12/31 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
Python os库常用操作代码汇总
2020/11/03 Python
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
董事长职责范文
2013/11/08 职场文书
建筑总经理岗位职责
2014/02/02 职场文书
工作所在部门证明
2014/09/21 职场文书
大学团日活动总结书
2015/05/11 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
《分数乘法》教学反思
2016/02/24 职场文书
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
2022/04/11 PHP