步步为营-77-Ajax简介

AJax:异步JavaScript和XML.Asynchronous JavaScript and XML

优点:无刷新

1 JavaScript下的Ajax

  1.1 XMLHttpRequest对象  使用ajax有一个很重要的对象XMLHttpRequest,而该对象的创建方式

  var xhr = new XMLHttpRequest();//常用

  var xhr =  new ActiveXObject("Microsoft.XMLHTTP");//(低版本的ie)

1.2 XMLHttpRequest对象的方法
new创建对象  open创建请求   send发送请求
1.3 根据以上三种方法,readyState对应五种状态0 1 2 3 4
new => 0 => open => 1 => send =>2=> 正在接收服务端返回的数据... 3 =>数据接受完毕 4
1.4 Open() 和Send() 方法
1.4.1 get请求
//参数1:请求方式  参数2:请求地址,可带参数(?name='zhangsan')  参数3:是否是异步请求
xhr.open("get", "01JavaScript下的Ajax.aspx.cs",true);
xhr.Send();  
1.5  回调函数:当服务器将数据返回给浏览器后,自动调用该方法
xhr.onreadystatechange
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="01JavaScript下的Ajax.aspx.cs" Inherits="AjaxTest._01JavaScript下的Ajax" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title></title><script>function checkVal(txt) {if (txt.value == ""){alert("用户名不能为空!");return;}var xhr;if (XMLHttpRequest) {xhr = new XMLHttpRequest();} else {xhr =  new ActiveXObject("Microsoft.XMLHTTP");}xhr.open("get", "01JavaScript下的Ajax.aspx?name=" + txt.value, true);xhr.send();//回调函数:当服务器将数据返回给浏览器后,自动调用该方法xhr.onreadystatechange = function () {if (xhr.readyState ==4) {if (xhr.status == 200) {alert(xhr.responseText);return;}}}}</script>
</head>
<body><form id="form1"><%--当用户名失去焦点时候,检验用户是否存在--%>用户名:<input type="text" id="UserName" value="" οnblur="checkVal(this)" /><br />密码:<input type="text" id="UserPwd" /></form>
</body>
</html>
Ajax
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace AjaxTest
{public partial class _01JavaScript下的Ajax : System.Web.UI.Page{public void Page_Load(object sender, EventArgs e){if (Request["name"]!=null){if (Request["name"] == "张三"){Response.Write("用户名已占用");Response.End();}else{Response.Write("恭喜你,用户名可以使用");} }}}
}
后台

 

  1.6 post请求

     xhr.open("post", "01JavaScript下的Ajax.aspx", true);
            xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded");
            xhr.send("name=" + txt.value);

2 通常我们是直接使用jQuery来完成Ajax请求的

 2.1 JQuery下的get请求

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title><script src="http://localhost:58888/JQuery/jquery-1.7.1.min.js"></script><script>$(function () {$("#UserName").blur(function () {if ($("#UserName").val() == "") {alert("用户名不能为空!");return;}//Ajax异步请求$.get("02JQuery下的Ajax.ashx", { "name": $("#UserName").val(), "pwd": $("#UserPwd").val() },//回调函数
                function (date) {alert(date);});});});</script>
</head>
<body>用户名:<input type="text" id="UserName" value="" οnblur="checkVal(this)" /><br />密码:<input type="text" id="UserPwd" />
</body>
</html>
jQuery下的Get

2.2 JQuery下的post请求===非常简单

将     $.get("02JQuery下的Ajax.ashx", { "name": $("#UserName").val(), "pwd": $("#UserPwd").val() },

改为 $.post("02JQuery下的Ajax.ashx", { "name": $("#UserName").val(), "pwd": $("#UserPwd").val() },

2.3 JQuery下的另一种写法

  //Ajax异步请求---方法二
                $.ajax({
                    type: "post",
                    url: "02JQuery下的Ajax.ashx",
                    data: "name=" + $("#UserName").val() + "&pwd=" + $("#UserPwd").val(),
                    success: function (msg) {
                        alert(msg);
                    }
                });

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title><script src="http://localhost:58888/JQuery/jquery-1.7.1.min.js"></script><script>$(function () {$("#UserName").blur(function () {if ($("#UserName").val() == "") {alert("用户名不能为空!");return;}//Ajax异步请求---方法一//$.post("02JQuery下的Ajax.ashx", { "name": $("#UserName").val(), "pwd": $("#UserPwd").val() },////回调函数//function (date) {//    alert(date);//});//Ajax异步请求---方法二
                $.ajax({type: "post",url: "02JQuery下的Ajax.ashx",data: "name=" + $("#UserName").val() + "&pwd=" + $("#UserPwd").val(),success: function (msg) {alert(msg);}});});});</script>
</head>
<body>用户名:<input type="text" id="UserName" value=""   /><br />密码:<input type="text" id="UserPwd" />
</body>
</html>
jQuery Ajax

 2.4 将Ajax的结果 返回出函数

 function GetReSumBYIDs(OuGUID, CcID, BiID) {var yearRem;$.ajax({url: "../Ashx/GetBudgetRemainingZLDC.ashx?OrgUnitGUID=" + OuGUID + "&CostCenterID=" + CcID + "&BudgetItemID=" + BiID,type: "POST",data: {},dataType: "text",async: false,//这里选择异步为false,那么这个程序执行到这里的时候会暂停,等待//数据加载完成后才继续执行
                        success: function (result) {yearRem = result;}, error: function (msg) {//出错
                        }});return yearRem;}
View Code

 

 

转载于:https://www.cnblogs.com/YK2012/p/7041629.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

福禄克Link IQ功能:PoE负载测试及故障排除

自从最初的IEEE 802.3af 1型以太网供电&#xff08;PoE&#xff09;标准于2003年首次推出以来&#xff0c;该技术已经发展到包括2型&#xff08;高达30瓦&#xff09;、3型&#xff08;高达60瓦&#xff09;和4型&#xff08;高达90瓦&#xff09;。这意味着PoE电压现在支持从手…

利用局域网测试仪进行网络性能测试

随着互联网科技的飞速发展&#xff0c;网络变的越来越庞大&#xff0c;数据量越来越高&#xff0c;网络速率成几何倍数增长&#xff0c;网络应用也越来越复杂&#xff0c;对网络的性能、稳定性和可靠性都提出了更高的要求。在日益复杂的网络环境中一旦发生网络故障&#xff0c;…

详解-制作根文件系统,并使用yaffs,jffs,nfs挂载系统(2)

1.安装mkyaffsimage, mkyaffs2image命令(用来制作yaffs文件系统) 第一个命令针对Flash小页512B,第二个针对Flash大页2KB首先下载压缩文件 yaffs_source_util_larger_small_page_nand.tar.bz2安装mkyaffs2image命令为例: tar –xjf yaffs_source_util_larger_small_page_nand.ta…

数据中心综合布线时,使用交叉连接和互连的好处?

数据中心中&#xff0c;在交换机之间或交换机与服务器之间&#xff0c;为了灵活性和方便管理&#xff0c;有源设备之间都是使用交叉连接和通过配线架互联。在一些场合&#xff0c;还有的要求在同一通道内使用多个交叉连接或互联。 大多数人都知道&#xff0c;永久链路是通道的…

Oracle 通过出生日期计算年龄

sysdate 为系统日期时间&#xff0c;BIRTH_DATE 为表中出生日期字段 SELECTCOUNT( * ) FROMBARN_SWALLOW_INFO WHEREVALID_FLAG 1 AND IS_JINQIAO 1 AND TRUNC( months_between( SYSDATE, BIRTH_DATE ) / 12 ) > 25 AND TRUNC( months_between( SYSDATE, BIRTH_DATE )…

网站如何集成百度UEditor编辑器

在平时的网站维护使用过程中&#xff0c;富文本编辑器是网站必不可少的元素之一。现在市面上各种编辑器功能设计参差不齐&#xff0c;自己做了几个网站都是用蝉知建站系统做的&#xff0c;而蝉知默认内置的编辑器是KindEditor&#xff0c;功能简单&#xff0c;已经满足不了我的…

福禄克DSX系列教你如何测试铜缆跳线和光纤跳线

无论是用于在数据中心的光纤配线区和交换机之间进行连接的光纤跳线&#xff0c;还是用于将终端设备连接到工作区插座的局域网中的铜跳线&#xff0c;跳线都是网络不可或缺的一个组成部分&#xff0c;而跳线通常也是网络中最脆弱的环节。它比其他任何部件都更容易受到损坏。 由于…

通过福禄克LinkIQ网络电缆测试仪排除 VLAN 故障

IT行业的每个人都听说过局域网&#xff08;LAN&#xff09;&#xff0c;并且很可能知道它是一个由无数设备组成的网络——计算机、服务器、路由器、监控摄像头等他们都是都连接在一个物理位置。由于虚拟局域网&#xff08;VLAN&#xff09;在技术上并不存在于物理上&#xff0c…

2021-09-22

missing right parenthesis 少反括号 后面没跟反括号。

使用福禄克CFP单模光纤测试仪像专家一样设置参数!

在使用福禄克CFP单模光纤测试仪测试光纤链路时&#xff0c;如果要测试一个光纤接头的损耗&#xff0c;不可能只测量单个光纤接头&#xff0c;必须将其与类似的已知质量接头相匹配。这里光纤接头损耗指的是配对光纤接头的损耗&#xff0c;这也是为什么要设置参考值。 举例&…

java不要使用e.printStackTrace()

不要使用e.printStackTrace() 反例&#xff1a; 正例&#xff1a; 原因 e.printStackTrace()打印出的堆栈日志跟业务代码日志是交错混合在一起的&#xff0c;通常排查异常日志不太方便。e.printStackTrace()语句产生的字符串记录的是堆栈信息&#xff0c;如果信息太长太多&am…

阿里云服务器ECS按ctrl+alt+delete无法登录

今天在使用阿里云服务器远程桌面的时候发现怎么也进入不了&#xff0c;远程桌面无法连接&#xff0c;于是想到了在阿里云服务器管理控制台可以使用连接管理终端进行远程桌面连接&#xff0c;下面详细介绍阿里云服务器操作经验。 操作步骤如下 登录阿里云 - 进入云服务器管理控制…

DSX2-5000 CH测试结果使用福禄克LinkWare Live软件的好处

近日&#xff0c;福禄克网络宣布&#xff0c;福禄克LinkWare Live软件中的上传结果数量已超过5000万。如果您是在过去一年中为5000万中做出贡献的众多之一&#xff0c;那么您一定见证体会且享受到了在布线认证工作时随时随地与任何设备上任何人一起管理的方便性及成本节约的好处…

java异常日志不要只打一半,要输出全部错误信息

//错误 try{ }catch(Exception e){log.error("你的程序有异常啦"); } 异常e都没有打印出来&#xff0c;所以压根不知道出了什么类型的异常 //错误 try{ }catch(Exception e){log.error("你的程序有异常啦" e.getMessage()); }e.getMessage()不会记录详细…

福禄克FI-3000光纤监测显微仪使用MPO检查摄像头?

福禄克网络FI-3000 光纤检测显微仪是行业内较好且可以完整的光纤检查仪器&#xff0c;它有单光纤和MPO的测摄像机&#xff1b;自动或手动检查&#xff0c;还可与福禄克网络Versiv布线认证系统、Linkware或智能手机配合使用。下面福禄克网络指定经销商—明辰智航的工程师给大家讲…

Cisco Catalyst 4500

Q. 思科正在推出哪些Cisco Catalyst 4500 E系列线路卡&#xff1f;A.思科正在推出三款全新的E系列线路卡&#xff0c;性能为每线路卡插槽2.4万兆。它们包括&#xff1a; 48端口10/100/1000 PoE &#xff08;2:1过多订购&#xff09; 48端口10/100/1000增强型PoE线路卡&#xff…

通过福禄克FI-7000光纤显微摄像机进行光纤端面清洁

无论任何光纤类型、应用或数据速率&#xff0c;光的传输都需要干净的链接路径&#xff0c;包括通过路线上的任何无源连接或接头&#xff0c;虽然我们谈论了很多关于光纤清洁度的话题&#xff0c;但不管我们在这个话题上说了多少&#xff0c;当我们面对它时&#xff0c;光纤端面…