<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="jquery-3.1.0.js"></script>
</head>
<body>
<!--ajax
jQuery对Ajax操作进行了封装
%.ajax() 最底层的方法
load get post 第2层的方法(用得比较多) 注意:get post,是全局函数 $.get 这样就能调用
getScript getJSON 第三次方法
-->
<!--load-->
<!--
载入远程HTML代码,并插入DOM中
load(url [,data] [,callBack])
url:请求HTML页面的URL地址
data:发送给服务器的key/value数据,是Object格式的
callback:回调函数,无论请求成功还是失败
load方法的参数传递方式根据data来自动指定,如果没有参数传递,采用GET方式,反之,则自动转换为POST方式
一个完整的load
$("").click(function(){
$("").load("url",{k1:v1,k2:v2},function(){})
})
关于回调函数,其有3个参数,分别是 返回内容 请求状态 XMLRequest对象
load一般用来从服务器获取静态数据文件
-->
<input type="button" id="send" value="Ajax获取" />
<div class="comment">已有评论</div>
<div id="resText"></div>
<script type="text/javascript">
$(function(){
$("#send").click(function(){
$("#resText").load("006_demo_01.html");
//对于url,不仅仅可以是一个请求地址,还可以带上选择器
//$("#resText").load("006_demo_01.html .className");
})
})
</script>
<!--get-->
<!--
get方法使用GET方式来进行异步请求
get(url [,data] [,callback] [,type])
参数说明:
请求地址
发送数据
回调函数
服务端返回内容格式:xml script json text _default
举例:
HTML数据的返回,可以直接显示在页面上
$("").click(function(){
$.get("请求地址"
,{
username:$("#username").val()
,password:$("#password").val()
}
,function(data,textStatus){
$("#resText").html(data);//将返回的数据添加在页面上
})
})
XML数据的返回处理
就是回调函数在处理的时候有些区别
$(data).find("comment").attr("username"),这样获取XML数据中的值
JSON数据的返回处理
首先在请求的时候,声明服务端返回的是json数据
通过点的方式就能够获取JSON中的数据
如:username = data.username
-->
<!--post-->
<!--
post的使用与get相同
区别:
get请求会将参数添加在url后面,post请求会将参数封装在http消息的实体内容
get方式对传输有大小限制,通常不超过2k
get请求参数会被缓存起来,不安全
两种请求方式,在服务端的获取方式是不同的
-->
<!--getScript-->
<!--
有时候在页面初次加载的时候就获取全部的js文件是没有必要的
$.getScript("test.js");
-->
<!--getJSON-->
<!--
$.getJSON用于加载JSON文件
$.getScript("test.json",function(data){
//处理
});
-->
<!--以上能够实现基本的Ajax操作,如果想要实现复杂的Ajax操作,就需要用到$.ajax方法了-->
<!--
$.ajax(options)
需要的所有参数都在options中,options是一个键值对
序列化元素
提交表单数据,如果使用键值对的形式手动设置,太麻烦了,可以使用序列化,提交整个表单
$("#form1").serialize(),把整个作为ajax的请求参数即可
请求参数还可以是字符串的形式,和url中添加请求参数一样.但此时要注意编码
对于表单,推荐使用序列化元素提交,少量数据,使用对象方式提交,字符串形式个人不推荐
serializeArray:$(":checkbox").serializeArray();//将DOM元素序列化后转化成JSON格式的数据
$.param()
$.param({a:1,b:2})-->a=1&b=2
-->
<!--
Ajax全局事件
开始ajax请求的时候,ajaxStart()方法的回调函数被触发
结束ajax请求的时候,ajaxStop()方法的回调函数被触发
ajaxStart()一般用于提示加载信息
ajaxComplete() 请求完成时执行
ajaxError() 请求失败时执行
ajaxSend() 请求发送前执行
ajaxSuccess() 请求成功时执行
如果不想触发全局事件,可以使用$.ajax()中设置global:false
-->
</body>
</html>