1.原生js实现Ajax方法:

// 封装ajax()方法
function ajax(url,fnSucc,fnFaild){
//1、创建Ajax 对象
if(window.XMLHttpRequest)
{
var oAjax=new XMLHttpRequest(); //声明 兼容除IE6外 所有主流浏览器
}
else
{
var oAjax=new ActiveXObject("Microsoft.XMLHTTP"); //声明 兼容IE6 内置的 微软的 插件
} //2、连接服务器(打开连接服务器)
// open(method,url,async)
// method :请求的类型;GET 或 POST
// url :文件在服务器上的位置
// async :true(异步)或 false(同步)
oAjax.open('GET',url,true); //3、发送请求
oAjax.send(); //4、接受请求
oAjax.onreadystatechange=function (){ //存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
/** readyState状态含义
* 0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
*/
if(oAjax.readyState==4){
/** status 状态含义
200: "OK" 成功
404: 未找到页面 出错
*/
if (oAjax.status==200) {
//alert('成功了!'+Ajax.readyState); //responseXML 获得 XML 形式的响应数据。
fnSucc(oAjax.responseText); //responseText 获得字符串形式的响应数据。
}
else{
//alert('失败了');
if(fnFaild){
fnFaild
}
}
}
};
}

ajax(url,fnSucc,fnFaild)函数参数介绍:
url:读取文件的路径,可以写相对路径或绝对路径(服务器上面的文件名都不能用中文命名)
fnSucc:成功返回信息
fnFaild:失败返回信息

HTML页面使用方法 代码如下:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script src="ajax.js"></script>
<script>
window.onload=function ()
{
var oBtn=document.getElementById('btn1'); oBtn.onclick=function ()
{ //阻止缓存方法:缓存是根据URL来存储的。只要url在变,就可以了。在路径那里加上get数据。getTime()是毫秒数
//第二种阻止缓存方法: 声明全部变量num = 0; 在路径后面加'aaa.txt?='+(num++) 递归
ajax('aaa.txt?t='+new Date().getTime(), function (str){
alert(str);
}, function (){
alert('失败');
});
};
};
</script>
</head> <body>
<input id="btn1" type="button" value="读取" />
</body>
</html>

2.jq方式实现Ajax方法:

$(document).ready(function(){
$("#search").click(function(){
$.ajax({
type: "GET",
url: "http://127.0.0.1:8080/ajaxdemo/serverjson2.php?number=" + $("#keyword").val(),
dataType: "json",
success: function(data) {
if (data.success) {
$("#searchResult").html(data.msg);
} else {
$("#searchResult").html("出现错误:" + data.msg);
}
},
error: function(jqXHR){
alert("发生错误:" + jqXHR.status);
},
});
}); $("#save").click(function(){
$.ajax({
type: "POST",
url: "serverjson.php",
data: {
name: $("#staffName").val(),
number: $("#staffNumber").val(),
sex: $("#staffSex").val(),
job: $("#staffJob").val()
},
dataType: "json",
success: function(data){
if (data.success) {
$("#createResult").html(data.msg);
} else {
$("#createResult").html("出现错误:" + data.msg);
}
},
error: function(jqXHR){
alert("发生错误:" + jqXHR.status);
},
});
});
});

注:

type:类型,“POST”或者“GET”,默认为“GET”
url:发送请求的地址
data:是一个对象连同请求发送到服务器的数据
dataType:预期服务器返回的数据类型。如果不指定,jQuery将自动根据包含HTTP包MIME信息来智能判断,一般我们采用json格式,可以设置为“json”
success:是一个方法,请求成功后的回掉函数。传入返回后的数据,以及包含成功代码的字符串
error:是一个方法,请求失败时调用此函数。传入XMLHttpRequest对象

最新文章

  1. 将命令添加到shell脚本中然后设置开机自启动
  2. IIS7 应用程序池回收
  3. 厚积薄发,拥抱 .NET 2016
  4. IOS 手势详解
  5. ubuntu下各个软件完全卸载
  6. 【转】【调试技巧】Linux环境下段错误的产生原因及调试方法小结
  7. Codeforces 294B Shaass and Bookshelf(记忆化搜索)
  8. 警惕VPS服务商常用的超售手段
  9. Indent Guides VS 插件 对齐线
  10. 一个CFile::Remove引起的奇怪问题
  11. Android 网络请求详解
  12. Activiti工作流学习-----基于5.19.0版本(4)
  13. CentOS7 已安装telnet维修
  14. 关于No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)使用百度地图的解决办法
  15. UVA-11882 bfs + dfs + 剪枝
  16. JVM学习三:静态分派
  17. LeetCode 141. Linked List Cycle 判断链表是否有环 C++/Java
  18. agc031
  19. Java并发编程基础-线程安全问题及JMM(volatile)
  20. 【iCore4 双核心板_ARM】例程十三:SDIO实验——读取SD卡信息

热门文章

  1. 【caffe】Caffe的Python接口-官方教程-01-learning-Lenet-详细说明(含代码)
  2. Java线程:概念及原理
  3. 【BZOJ4197】[Noi2015]寿司晚宴 状压DP+分解质因数
  4. EasyRTMP Android安卓手机直播推流摄像头偏暗的问题解决
  5. [转]JS学习之正则表达式
  6. java中随机生成汉字
  7. 九度OJ 1074:对称平方数 (数字特性)
  8. BCH硬分叉,BitcoinABC强势逆袭BitcoinSV
  9. Web框架和Django基础
  10. Java拓展教程:文件DES加解密