JavaScript中的ajax功能的概念和示例详解


Posted in Javascript onOctober 17, 2016

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML)。

个人理解:ajax就是无刷新提交,然后得到返回内容。

对应的不使用ajax时的传统网页如果需要更新内容(或用php做处理时),必须重载整个网页页面。

示例:

html代码如下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ajax示例</title>
<style>
#loginForm {
border-collapse: collapse;
}
#loginForm,#loginForm td {
border:#550 1px solid;
text-align:center;
}
</style>
</head>
<body>
<table id="loginForm">
<tr>
<td>用户名:</td>
<td><input type="text" id="userName"/></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" id="password"/></td>
</tr>
<tr>
<td colspan=2><input id="submitBtn" type="submit" value="ajax提交"/></td>
</tr>
</table>
<script type="text/javascript" language="javascript">
document.getElementById('submitBtn').addEventListener('click', clickSubmit);
function clickSubmit() {
makeRequest('./test.php');
}
var req = false;
/**
* 创建ajax请求
* url 处理请求的php位置
*/
function makeRequest(url) {
req = false;
//创建一个XMLHTPP实例
if (window.XMLHttpRequest) { // ie9以上和w3c浏览器的对象
req = new XMLHttpRequest();
if (req.overrideMimeType) {
//如果服务器的响应没有XML mime-type header,某些Mozilla浏览器可能无法正常工作. 
//为了解决这个问题, 如果服务器响应的header不是text/xml,可以调用其它方法修改该header. 
req.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE678专用
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert('new window.ActiveXObject() failed!');
}
}
if (!req) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
//指定处理响应的JavaScript函数名. 
req.onreadystatechange = alertContents;
//测试传递 用户名和密码
var user_name = document.getElementById('userName').value;
var user_pwd = document.getElementById('password').value;
//open(请求方式,准确的本域域名,是否异步);
//GET或POST方式
//----GET方式请求------
//req.open('GET', url+'?user_name='+user_name+'&user_pwd='+user_pwd, true);
//req.send(null);
//----POST方式请求------
//发送请求 如果open是POST方式可以发送字符串给服务器,也可以在open的第二个参数同时加上get传输
////req.open('POST', url+'?get1='+user_name+'&get2='+user_pwd, true);
req.open('POST', url, true);
req.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
req.send('user_name='+user_name+'&user_pwd='+user_pwd);
}
/**
* ajax请求的回调处理函数
*/
function alertContents() {
if (req.readyState == 4) {
console.log(req.status);
if (req.status == 200) {
alert(req.response);
} else {
alert('There was a problem with the request.');
}
}
}
</script>
</body>
</html>

./test.php代码如下

<?php
header('content-type:text/html;charset=utf-8');
var_dump($_POST);//获取到post传递的数据
var_dump($_GET);

以上所述是小编给大家介绍的JavaScript中的ajax功能的概念和示例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
firefox插件Firebug的使用教程
Jan 02 Javascript
jquery下实现overlay遮罩层代码
Aug 25 Javascript
浅析JavaScript中的隐式类型转换
Dec 05 Javascript
js实现大转盘抽奖游戏实例
Jun 24 Javascript
js实现文字滚动效果
Mar 03 Javascript
Sea.JS知识总结
May 05 Javascript
JQuery在循环中绑定事件的问题详解
Jun 02 Javascript
微信小程序 http请求详细介绍
Oct 09 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
Dec 25 Javascript
基于Vue实现拖拽功能
Jul 29 Javascript
详解搭建es6+devServer简单开发环境
Sep 25 Javascript
Vue使用预渲染代替SSR的方法
Jul 02 Javascript
JQuery中解决重复动画的方法
Oct 17 #Javascript
bootstrap读书笔记之CSS组件(上)
Oct 17 #Javascript
原生JavaScript制作计算器
Oct 16 #Javascript
JavaScript 实现的checkbox经典实例分享
Oct 16 #Javascript
JavaScript正则表达式实例详解
Oct 16 #Javascript
js实现碰撞检测特效代码分享
Oct 16 #Javascript
js+css3制作时钟特效
Oct 16 #Javascript
You might like
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
javascript动画浅析
2012/08/30 Javascript
Jquery中find与each方法用法实例
2015/02/04 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
2016/05/20 Javascript
最佳的JavaScript错误处理实践
2016/07/16 Javascript
js实现弹窗暗层效果
2017/01/16 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
2019/09/28 Javascript
python编写分类决策树的代码
2017/12/21 Python
详解python爬虫系列之初识爬虫
2019/04/06 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
keras打印loss对权重的导数方式
2020/06/10 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
Python用户自定义异常的实现
2020/12/25 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
行政专员工作职责
2013/12/22 职场文书
2014婚礼司仪主持词
2014/03/14 职场文书
孩子教育的心得体会
2014/09/01 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
学校捐书倡议书
2015/04/27 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server
Python实现DBSCAN聚类算法并样例测试
2021/06/22 Python
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL