Jquery的$.get $.post $.getJSON $.ajax

如果客户端使用jquery.ajax,TYPE为POST,或者使用jquery.post,那么服务端接收的语句应该是context.Request.Form["  "],不能使用context.Request.QueryString["  "]

 

 

客户端jquery.post如果你设置了请求的格式为"json",此时服务器端你没有设置Response回来的ContentType 为:Response.ContentType = "application/json"; 那么你将无法捕捉到返回的数据。

注意一下,alert(data.result); 由于设置了Accept报头为“json”,这里返回的data就是一个对象,并不需要用eval()来转换为对象。返回的data可以是一个对象,也可以是一个数组,主要看服务器端返回的是什么。

 

对jquery.get乱码的处理:客户端encodeURI(" ")  服务器端context.Server.UrlDecode(context.Request.QueryString[" "])

而jquery.post的无需处理乱码

 

用法概要:

 

1.load( url, [data], [callback] ); 可以轻松载入静态页面内容到指定jQuery对象。

 

url (String) 请求的HTML页的URL地址

data (Map)(可选参数) 发送至服务器的 key/value 数据

callback (Callback) (可选参数) 请求完成时(不需要是success的)的回调函数

 

load()方法$('#ajax-div').load('data.html');

 

这样,data.html的内容将被载入到ID为ajax-div的DOM对象之内。

 

你甚至可以通过制定ID来实现载入部分内容的Ajax操作,如: $('#ajax-div').load('data.html#my-section');

 

2.get( url, [data], [callback] ) ; url (String) 发送请求的URL地址. data (Map)(可选参数) 要发送给服务器的数据,以 Key/value 的键值对形式表示,会做为QueryString附加到请求URL中 callback (Callback) (可选参数) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)   $.get('login.php', {
id : 'Robin',
password: '123456',
   gate    : 'index'
  }, function(data, status) {
   //data为返回对象,status为请求的状态
   alert(data);
   //此时假设服务器脚本会返回一段文字“你好,Robin!”,那么浏览器就会弹出对话框显示该段文字
   alert(status);
   //结果为success, error等等,但这里是成功时才能运行的函数
  });

 

3.post( url, [data], [callback], [type] ) ; url (String) 发送请求的URL地址. data (Map)(可选参数) 要发送给服务器的数据,以 Key/value 的键值对形式表示 callback (Callback) (可选参数) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法) type (String) (可选参数) 请求数据的类型,xml,text,json等   $.post('regsiter.php', {
   id:'Robin',
   password: '123456',
   type:'user'
  },function(data, status) {
   alert(data);
  }, "json");

 

 

4.getScript( url, [callback] ) ;可以远程载入JavaScript脚本并且执行。这个函数可以跨域载入JS文件。它可以很大程度的缩减页面初次载入的代码量,因为你可以根据用户的交互来载入相应的JS文件,而不必在页面初始化的时候全部载入。 url (String) 待载入 JS 文件地址 callback (Function) (可选) 成功载入后回调函数   $.getScript('ajaxEvent.js', function() {
   alert("Scripts Loaded!");
   //载入ajaxEvent.js,并且在成功载入后显示对话框提示。
  }); 5.getJSON(url,[data],[callback]);数据传输格式,可以通过把请求url写 成"myurl?callback=X"这种格式,让程序执行回调函数X。 
url (String) 发送请求地址
data (Map) (可选) 待发送 Key/value 参数
callback (Function) (可选) 载入成功时回调函数。

 

$.getJSON('feed.php',{
   request: images,
   id:      001,
   size:    large
   }, function(json) {
    alert(json.images[0].link);
    //此处json就是远程传回的json对象,假设其格式如下:
    //{'images' : [
    // {link: images/001.jpg, x :100, y : 100},
    // {link: images/002.jpg, x : 200, y 200:}
    //]};
   }
);

6.ajax()来调用一个XML文档:

$.ajax({
url: 'doc.xml',
type: 'GET',
dataType: 'xml',
timeout: 1000,
error: function(){
alert('Error loading XML document');
},
success: function(xml){
alert(xml);
//此处xml就是XML的jQuery对象了,你可以用find()、next()或XPath等方法在里面寻找节点,和用jQuery操作HTML对象没有区别
}
});
7.下面是jQuery提供的所有AJAX全局函数(按照触发顺序排列如下): 
ajaxStart : (全局事件) 开始新的Ajax请求,并且此时没有其他ajax请求正在进行 beforeSend : (局部事件) 当一个Ajax请求开始时触发。如果需要,你可以在这里设置XMLHttpRequest对象 ajaxSend : (全局事件) 请求开始前触发的全局事件 success : (局部事件) 请求成功时触发。即服务器没有返回错误,返回的数据也没有错误 ajaxSuccess : 全局事件全局的请求成功 error : (局部事件) 仅当发生错误时触发。你无法同时执行success和error两个回调函数 ajaxError : 全局事件全局的发生错误时触发 complete : (局部事件) 不管你请求成功还是失败,即便是同步请求,你都能在请求完成时触发这个事件 ajaxComplete : 全局事件全局的请求完成时触发 ajaxStop : (全局事件) 当没有Ajax正在进行中的时候,触发

8.对某个对象进行全局事件监听,那么全局中的AJAX动作,都会对其产生影响。比如,当页面在进行AJAX操作时,ID为“loading"的DIV就显示出来:

$("#loading").ajaxStart(function(){
$(this).show();
});
9.在一个对象里显示全局的AJAX情况: 
$("#msg").beforeSend(function(e,xhr,o) {
$(this).html("正在请求"+o.url);
}).ajaxSuccess(function(e,xhr,o) {
$(this).html(o.url+"请求成功");
}).ajaxError(function(e,xhr,o) {
$(this).html(o.url+"请求失败");
});
10.在单个AJAX请求时,你可以将global的值设为false,以将此请求独立于AJAX的全局事件。 
$.ajax({
url: "request.php",
global: false,
// 禁用全局Ajax事件.
});
11.如果你想为全局AJAX设置参数,你会用上ajaxSetup()函数。例如,将所有AJAX请求都传递到request.php,;禁用全局方法;强制用POST方法传递: 
$.ajaxSetup({
url: "request.php",
global: false,
type: "POST"
});
12.AJAX从页面获取相应的值
(1).val()函数
$("input[name='info']:text").val(); 
//返回名字为info的文本框的值

$("input[name='pass']:password").val();
//返回名字为pass的密码框的值

$("input[name='save']:radio").val();
//返回名字为save的单选项的值

//以此类推
(2).serialize() serialize函数可以帮你把表单对象的所有值都转换为字符串序列。如果你要写GET格式的请求,这个就非常方便了。 
(3).serializeArray()  和serialize()类似,只不过它返回的是JSON对象。 

1 交互是异步的
2 在客户端用JavaScript接收、发送、展示数据
3 用XML作为传输介质

Ajax应该用来干什么?
1 二级或N级联动列表
如果下一级列表数据依赖于上一级选择,并且数据是动态不定的,那么这种情况用Ajax实现就会很自然。
2 用户界面输入辅助
你在Google中输入一个或几个字,就会出现一个下拉列表供你选择比较热门的相关词语。
3 数据校验
当焦点离开某控件时判断控件中数据是否合法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值