jQuery 教程 (六) AJAX快餐2 .NET

JQuery Ajax调用asp.net后台方法 利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法。 阅读详情

五.Ajax相关函数.

jQuery提供了一些相关函数能够辅助Ajax函数.

1. jQuery.ajaxSetup( options )

无返回值

说明:

设置全局 AJAX 默认options选项。

讲解:

有时我们的希望设置页面上所有Ajax属性的默认行为.那么就可以使用此函数设置options选项, 此后所有的Ajax请求的默认options将被更改.

options是一个对象, 可以设置的属性请此连接:http://docs.jquery.com/Ajax/jQuery.ajax#toptions

比如在页面加载时, 我使用下面的代码设置Ajax的默认option选项:

            $.ajaxSetup({
                url: "../data/AjaxGetMethod.aspx",
                data: { "param": "ziqiu.zhang" },
                global: false,
                type: "POST",
                success: function(data, textStatus) { $("#divResult").html(data); }
            });

上面的代码设置了一个Ajax请求需要的基本数据: 请求url, 参数, 请求类型, 成功后的回调函数.

此后我们可以使用无参数的get(), post()或者ajax()方法发送ajax请求.完整的示例代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>jQuery Ajax - Load</title>

    <script type="text/javascript" src="../scripts/jquery-1.3.2-vsdoc2.js"></script>

    <script type="text/javascript">
        $(document).ready(function()
        {
            $.ajaxSetup({
                url: "../data/AjaxGetMethod.aspx",
                data: { "param": "ziqiu.zhang" },
                global: false,
                type: "POST",
                success: function(data, textStatus) { $("#divResult").html(data); }
            });

            $("#btnAjax").click(function(event) { $.ajax(); });
            $("#btnGet").click(function(event) { $.get(); });
            $("#btnPost").click(function(event) { $.post(); });
            $("#btnGet2").click(function(event) { $.get("../data/AjaxGetMethod.aspx",{ "param": "other" }); });

        });

    </script>

</head>  
<body>    
    <button id="btnAjax">不传递参数调用ajax()方法</button><br />
    <button id="btnGet">不传递参数调用get()方法</button><br />
    <button id="btnPost">不传递参数调用post()方法</button><br />
    <button id="btnGet2">传递参数调用get()方法, 使用全局的默认回调函数</button><br />
    <br />
    <div id="divResult"></div>
</body>
</html>

注意当使用get()或者post()方法时, 除了type参数将被重写为"GET"或者"POST"外, 其他参数只要不传递都是使用默认的全局option. 如果传递了某一个选项, 比如最后一个按钮传递了url和参数, 则本次调用会以传递的选项为准. 没有传递的选项比如回调函数还是会使用全局option设置值.

2.serialize( )

Returns: String

说明:

序列表表格内容为字符串,用于 Ajax 请求。

序列化最常用在将表单数据发送到服务器端时. 被序列化后的数据是标准格式, 可以被几乎所有的而服务器端支持.

为了尽可能正常工作, 要求被序列化的表单字段都有name属性, 只有一个eid是无法工作的.

像这样写name属性:

<input id="email" name="email" type="text" /> 


讲解:

serialize()函数将要发送给服务器的form中的表单对象拼接成一个字符串. 便于我们使用Ajax发送时获取表单数据. 这和一个From按照Get方式提交时, 自动将表单对象的名/值放到url上提交差不多.

比如这样一个表单:

image

生成的字符串为:single=Single&param=Multiple&param=Multiple3&check=check2&radio=radio1

提示:代码见 chapter6\7-serialize.htm

3.serializeArray( )

Returns: Array<Object>

说明:

序列化表格元素 (类似 '.serialize()' 方法) 返回 JSON 数据结构数据。

注意,此方法返回的是JSON对象而非JSON字符串。需要使用插件或者第三方库进行字符串化操作。

讲解:

看说明文档让我有所失望, 使用此函数获取到的是JSON对象, 但是jQuery中没有提供将JSON对象转化为JSON字符串的方法.

在JSON官网上没有找到合适的JSON编译器, 最后选用了jquery.json这个jQuery插件:

http://code.google.com/p/jquery-json/

使用起来异常简单:

var thing = {plugin: 'jquery-json', version: 1.3};
var encoded = $.toJSON(thing);              //'{"plugin": "jquery-json", "version": 1.3}'
var name = $.evalJSON(encoded).plugin;      //"jquery-json"
var version = $.evalJSON(encoded).version;  // 1.3

使用serializeArray( ) 再配合 $.toJSON 方法, 我们可以很方便的获取表单对象的JSON, 并且转换为JSON字符串:

$("#results").html( $.toJSON( $("form").serializeArray() ));


结果为:

[{"name": "single", "value": "Single"}, {"name": "param", "value": "Multiple"}, {"name": "param", "value": "Multiple3"}, {"name": "check", "value": "check2"}, {"name": "radio", "value": "radio1"}]

六.全局Ajax事件

在jQuery.ajaxSetup( options ) 中的options参数属性中, 有一个global属性:

global

类型:布尔值

默认值: true

说明:是否触发全局的Ajax事件.

这个属性用来设置是否触发全局的Ajax事件. 全局Ajax事件是一系列伴随Ajax请求发生的事件.主要有如下事件:

名称说明
ajaxComplete( callback )AJAX 请求完成时执行函数
ajaxError( callback )AJAX 请求发生错误时执行函数
ajaxSend( callback )AJAX 请求发送前执行函数
ajaxStart( callback )AJAX 请求开始时执行函数
ajaxStop( callback )AJAX 请求结束时执行函数
ajaxSuccess( callback )AJAX 请求成功时执行函数

用一个示例讲解各个事件的触发顺序:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>jQuery Ajax - AjaxEvent</title>

    <script type="text/javascript" src="../scripts/jquery-1.3.2.min.js"></script>

    <script type="text/javascript">
        $(document).ready(function()
        {

            $("#btnAjax").bind("click", function(event)
            {
                $.get("../data/AjaxGetMethod.aspx");
            })

            $("#divResult").ajaxComplete(function(evt, request, settings) { $(this).append('<div>ajaxComplete</div>'); })
            $("#divResult").ajaxError(function(evt, request, settings) { $(this).append('<div>ajaxError</div>'); })
            $("#divResult").ajaxSend(function(evt, request, settings) { $(this).append('<div>ajaxSend</div>'); })
            $("#divResult").ajaxStart(function() { $(this).append('<div>ajaxStart</div>'); })
            $("#divResult").ajaxStop(function() { $(this).append('<div>ajaxStop</div>'); })
            $("#divResult").ajaxSuccess(function(evt, request, settings) { $(this).append('<div>ajaxSuccess</div>'); })

        });

    </script>

</head>
<body>    
  <br /><button id="btnAjax">发送Ajax请求</button><br/>
  <div id="divResult"></div>
</body>
</html>


结果如图:

image

我们可以通过将默认options的global属性设置为false来取消全局Ajax事件的触发.

七.注意事项

如果在Get请求发送的url中有两个同名参数, 比如两个param参数:

http://localhost/AjaxGetMethod.aspx?param=Multiple&param=Multiple3

使用服务器端方法获取param参数:

        if (!String.IsNullOrEmpty(HttpContext.Current.Request["Param"]))
        {
            param = HttpContext.Current.Request["Param"];
        }

此时获取到得param是一个用","分隔多个值的字符串:

Multiple,Multiple3


八.总结

本文介绍如何使用jquery实现Ajax功能. 用于发送Ajax请求的相关函数如load, get, getJSON和post这些渐变Ajax方法, 对于核心的ajax 方法没有过多介绍, 主要是通过配置复杂的参数实现完全控制Ajax请求. 另外讲解了ajax的辅助函数比如用于序列化表单对象为字符串的serialize()方法, 用于将表单对象序列化为JSON对象的serializeArray()方法. 这些在使用脚本获取数据实现与服务器端交互是很有用, JSON格式的数据在处理大对象编程时将我们从混乱的属性字符串中解放出来.

jQuery还提供录入全局ajax事件这一个特殊的事件, 并且可以在一个对象上设置这些事件, 在发送Ajax请求的各个生命周期上会调用这些事件, 可以通过修改默认的options对象的global属性打开或关闭全局事件.

目前本系列文章在加紧创作阶段. 所以代码和文章示例都没有来得及重新整理. 下面是本章的代码下载, 但是含有所有以前未整理的示例,请大家下载后看chapter6文件夹, 里面是本章的所有示例:

http://files.cnblogs.com/zhangziqiu/Code-jQueryStudy.rar

作者: 张子秋
出处: http://www.cnblogs.com/zhangziqiu/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。  
ASP.NET MVC 使用Jquery Ajax实现登录 视图[Views]  --   Login.cshtml 页面 Ajax Login @*生成防伪标记*@ @Html.AntiForgeryToken() 用户名: 阅读详情

相关推荐

实现jquery.ajax向ASP.NET MVC Action的参数传递

本文还有配套的精品资源,点击获取 简介:jQuery的ajax方法允许在不刷新页面的情况下与服务器进行数据交互,是提升Web用户体验的关键技术。本文深入讲解了如何通过ajax方法向ASP.NET MVC框架中的Action传递参数。文章从ajax方法的结构开始,详细说明了如何设置URL、请求类型、发送数据、期望返回的数据类型以及成功和错误处理函数。同时,还介绍了conten...

weixin_42600128的博客 1137

ASP.NET AJAX 和 jQuery

ASP.NET AJAX 和 jQuery An Introduction to jQuery (Part 1): Rick Strahl 发表了一篇精彩文章,介绍jQuery, 示范如何在ASP.NET网页中利用它。 New AJAX Support for Data-Driven Web Apps: Bertrand Le Roy 撰写了一篇很棒的 MSDN 杂志文章, 描述一些目前尚处于

Mobidogs Blog 1058

【Allegro学习笔记】常规标贴封装创建-0402封装创建实例

摘要 本文主要介绍如何使用Allegro制作表面贴装封装。 所使用的软件 使用Allegro制作常规贴片封装主要使用的软件有Pad Designer和Allegro 1 0402类封装制作 1.1 0402类封装焊盘分析 0402封装尺寸图如图1...

Honglong 1万+

jQuery 教程 (六) AJAX快餐 .NET

一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案, 即使你会使用jQuery也能在阅读中发现些许秘籍. 本篇文章讲解如何使用jQuery方便快捷的实现Ajax功能.统一所有开发人员使用Ajax的方式. 二.前言 Ajax让用户页面丰富起来, 增强了用户体验. 使用Ajax是所有Web开发的必修课. 虽然Ajax技术并不复杂, 但是实现方式还

丨Fanny丨Cri 492

反无人机技术实战解析:从探测到拦截的全方位防御策略

本文深入解析了反无人机(C-UAS)技术的全链条防御策略。从雷达、无线电频谱、光电等多维度探测技术,到数据融合与威胁评估,再到无线电干扰、导航诱骗及物理拦截等核心拦截手段,系统阐述了如何构建从探测到拦截的实战化防御体系,为关键设施、大型活动等场景提供定制化空域安全解决方案。

weixin_29230649的博客 401

PCB设计AD规则设置(按照嘉立创设置)

按照嘉立创的相关加工能力进行设置: 1.Hole Size(钻孔孔径) 嘉立创要求钻孔孔径在0.2-6.3mm,并给了公差(如下图给出了钻孔孔径和公差) 规则设置位置:Manufacturing->Hole Size,这里就改一下数值,最小设置为0.2mm,最大设置为6.3mm 2.Width(线宽) 嘉立创要求线宽多层板双层板最小为3.5mil,单双层板最小为5mil(如下图给出了线宽) 规则设置位置:Routing->Width,我目前只画过双层板,按我的设置如下,最小的线宽设置为10

subtitle_的博客 4万+

ASP.NET Core中的jQuery Unobtrusive Ajax帮助器

最近在ASP.NET Core下写文章管理系统时,准备在分页显示文章内容时,使用Ajax。网上找了篇帖文,简单翻一下,仅供自己查阅。 本贴讲述了如何在ASP.NET Core中获取jQuery Unobtrusive Ajax帮助器。AjaxHelper类为用AJAX渲染HTML视图提供支持。如果你想将现有的ASP.NET MVC项目迁移到ASP.NET Core MVC,却没有现成的标记帮助器可供替换,取而代之的是ASP.NET Core团队建议使用data-*属性。所有现存的@Ajax.Form属性都可

极客神殿 1521

手把手教你用AI工具快速开发UniApp首页:从设计稿到完整页面的实战流程

本文详细介绍了如何利用Claude Code、Cursor等AI工具高效开发UniApp首页的完整工作流。从设计稿解析、Prompt工程、代码生成优化到调试适配,提供了一套可复用的实战流程,帮助前端开发者大幅提升从设计到代码的转化效率。

weixin_29199873的博客 317

记录IIS7上配置.Net2010的mvc2遇到的jQuery关于ie的Ajax小问题..

<br /><br /> <br /> <br />最近几天搞了。Net mvc2的项目,在里面用到了mvc2里面自带的微软的Ajax和jQuery。<br /><br />熟悉了一下mvc的流程,用Ajax做了一个网上聊天的小程序,主要意思是双方不停的用Ajax刷新同一个函数,如果有了变化则读取最新数据。<br />Mvc2是在。Net2010中的项目,用的是framework4,和一些新的架构,我在xp的IIS上尝试配置,遇到了很多问题,于是采用win7的IIS7做配置。<br />在win7中安装ii

yuandonghuia的专栏 3240

TP4056锂电池充电电路设计原理与工程实践

锂离子电池充电管理是嵌入式电源系统的核心基础技术,其本质是通过恒流恒压(CC/CV)控制策略,匹配电池电化学特性以实现安全、高效、长寿命充放电。TP4056作为典型线性充电IC,以精简外围实现预充、恒流、恒压及自动截止全周期管理,但受限于线性拓扑的热耗散特性,必须协同散热设计、电阻精度选型与PCB布局进行系统级优化。该方案广泛应用于STM32智能小车、便携传感器节点等3.7V单节锂电供电场景,兼顾成本、可靠性与工程可实施性,是入门嵌入式硬件电源设计的关键实践范例。

weixin_36064575的博客 219

STM32 USB AUDIO实战指南——从零构建音频设备

本文详细介绍了如何使用STM32F407构建USB音频设备,从硬件准备到软件配置,再到音频播放和录制功能的实现。通过STM32CubeMX配置和实战代码示例,帮助开发者快速掌握USB Audio Class规范,实现低延迟、高质量的音频传输,适用于语音交互、音乐播放等多种场景。

weixin_42549037的博客 484

Asp.Net+Jquery.Ajax详解7-全局Ajax事件

目录(已经更新的文章会有连接,从7月25日开始,每2到3天更新一篇): Asp.Net+Jquery.Ajax详解1-开篇(2012.07.25发) Asp.Net+Jquery.Ajax详解2-$.Load(2012.07.26发) Asp.Net+Jquery.Ajax详解3-$.get和$.post(2012.07.30发) Asp.Net+Jquery.Ajax详解4-$.ge

一名系统架构师的征途 3724

14、微电网控制方法与建模分析

本文详细探讨了微电网的控制方法与建模分析,包括逆变器的小信号状态空间模型、网络模型、负载模型及其组合形成的完整微电网模型。通过对系统特征值和灵敏度因子的分析,揭示了不同模式与系统参数之间的关系。文章还提出了多个研究问题,如岛式系统控制器设计、风力发电控制、并网变换器控制等,为微电网的稳定性分析和优化控制提供了理论支持和实践方向。

elastic6hunter的博客 123

.NET中使用Jquery和Ajax(二)

接着上一篇的来讲,现在已经初步学会了在HTML页面中调用这些方法来弹出想要的弹窗。 中间有些关于Ajax的get,post方法在这里就不具体提到了,现在主要讲的是通过Ajax来提交数据,并通过我们之前使用的插件。 首先在页面中插入几个HTML控件,包括输入框 和提交按钮,比如:

123 1万+

车辆重识别/再辨识数据集: Vehicle Re-ID Datasets Collection

车辆数据库 1.VERI-Wild: A Large Dataset and a New Method for Vehicle Re-Identification in the Wild (2019-CVPR) 数据库名称:VERI-Wild 论文:链接 数据库描述: 车辆图像由一个包含174个摄像机,拍摄范围覆盖超过200平方公里的市区CCTV系统拍摄。摄像机是24小时连续拍摄30天,其长时间的...

AI炼丹师 6857

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

jQuery Ajax 的使用 方法列表 详解教程

jQuery Ajax 全解析 <!-- --> 本文地址: jQuery Ajax 全解析 本文作者:QLeelulu 来自博客园的朋友   jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。 废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装

Hurry的专栏 1713

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ASP.NET的 JQuery实例

本文介绍如何在ASP.NET(ASP.NET/AJAX)里使用基于JQuery的AJAX技术。(源代码下载见最后)  在使用JQuery前,请到www.jquery.com下载最新版本的js代码,然后再代码里使用  即可, 当然,由于微软已经把JQuery集成到VS里,所以你可以到WWW.ASP.NET/ajax查看 本文将通过六个列子介绍如何在ASP.NET里

Hunk的专栏 1772

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Asp.net +jQuery +ajax 传参问题

在asp.net中使用Ajax。

一支穿云箭 1686

Asp.Net+Jquery.Ajax详解1-开篇

目录(已经更新的文章会有连接,从7月25日开始,每2到3天更新一篇): Asp.Net+Jquery.Ajax详解1-开篇(2012.07.25发) Asp.Net+Jquery.Ajax详解2-$.Load(2012.07.26发) Asp.Net+Jquery.Ajax详解3-$.get和$.post(2012.07.30发) Asp.Net+Jquery.Ajax详解4-$.ge

一名系统架构师的征途 1万+

jQuery调用Asp.net Ajax页面中的方法

原来用jQuery的ajax方式调用asp.net页面基本都是调用单个页面,由调用页面Response内容,而现在采用asp.net ajax后,我们则可以更完美的使用jQuery和asp.net结合了,代码如下: :ScriptManager ID="ScriptManager1" runat="server" > :ScriptReference Path="http

我的IT世界 911

asp.net jquery ajax 登录,ASP.NET+jQuery打造的Ajax用户登录界面

类型:编程辅助大小:109KB语言:中文 评分:5.0标签:立即下载用户登录界面是信息系统提供的必备的功能,是提供给用户提供维护信息的接口。接下来,我来带领大家打造一个漂亮、安全的登录界面,使用的技术是ASP.NET+jQuery先来看看预览效果:Ajax登录重点在Ajax,输入用户名和密码后,使用Ajax方式将信息提交到服务器端,服务器端判断时候存在该用户,存在则登录成功并转向管理界面(有时需要...

weixin_31319027的博客 303

.net mvc使用jquery ajax

最近学习.net mvc,特此记录一下jquery在其中的用法; 下面一段代码展示了jQuery的ajax请求的使用。将调用HomeController中的Test方法,服务器端返回一段html编码,客户端接收到后,加载到html的body标签中。 $.ajax({ url: '../Home/Test', //请求的某个action的地址

xue251248603的专栏 987

asp.net ajax 参数,ASP.NET jquery ajax传递参数的实例

ASP.NET jquery ajax传递参数的实例发布于 2017-05-01 16:54:25 | 80 次阅读 | 评论: 0 | 来源: 网友投递jQuery javascript框架jQuery是一个兼容多浏览器的javascript框架,核心理念是write less,do more(写得更少,做得更多)。jQuery在2006年1月由美国人John Resig在纽约的barcamp发...

weixin_35725138的博客 487

asp ajax局部刷新,ASP.Net用jQuery ajax实现页面局部刷新

刚开始的时候使用asp的updatepanel控件实现局部刷新,而且在本地运行正确,但是部署到服务器上就变成整个页面全部刷新了。服务器用的是Windows server2000,本地机子上用的是win7,没有找到解决办法,最后改用ajax实现,本地和服务器都完美实现局部刷新效果。前台代码:$(".textBox").change(function () {var companyName;compa...

weixin_40006763的博客 1062

asp.net ajax 参数,ASP.NET jquery ajax传递参数

第一种:GET传递前台 ajax GET 传递 :即在请求的地址后面加上参数,URL地址长度有显示,安全性低后台接收:Request.QueryString[“参数名字”]!例如:function LoadBar(id) {var project = id;var month = $("#txtMonth").val();$.ajax({type: "GET",async: false,url...

weixin_42393576的博客 700

asp.net MVC 使用JQuery.Ajax

使用到:Jquery.js 以及 Newtonsoft.Json.dll   客户端调用方式: $("#ButAjax").click(function() {            $.ajax({                type: "POST",  //默认是GET                url: "/AjaxTest/getPerson",          

chy2z的专栏 654
上一篇: jQuery 教程 (六) AJAX快餐 .NET
下一篇: jQuery 教程 (七) jQuery动画-让页面动起来!1 .NET
Fanny
博客等级 码龄20年 9粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值