博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过XMLHttpRequest和jQuery实现ajax的几种方式
阅读量:6893 次
发布时间:2019-06-27

本文共 3749 字,大约阅读时间需要 12 分钟。

大家已经都知道了,是为了实现异步通讯,提高用户体验度,而将很多旧知识(XML,DOM,JavaScript,HTML,,Css……)重新融合的一个新的知识框架。而,XMLHttpRequest对象则是其中的重重之中,本篇文章主要给大家介绍通过XMLHttpRequest和的几种方式

HTML代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>        

  

创建一个“一般处理程序”来处理前台请求,返回系统当前时间:

Handler.ashx

<%@ WebHandler Language="C#" Class="Handler" %>using System;using System.Web;using System.Linq;using System.Collections.Generic;using System.Text;public class Handler : IHttpHandler {  public void ProcessRequest (HttpContext context) {    context.Response.ContentType = "text/plain";    context.Response.Write(ShowTime());  }  public bool IsReusable {    get {      return false;    }  }  public static string ShowTime()  {    return DateTime.Now.ToString();  }}

  

js代码:

function btnclick() {  var httprequest = null;  // 初始化XMLHttpRequest对象  if (window.XMLHttpRequest) {    // Firefox等现代浏览器中的XMLHttpRequest对象创建    httprequest = new XMLHttpRequest();  }  else if (window.ActiveXObject) {    // IE中的XMLHttpRequest对象创建    httprequest = new ActiveXObject("Microsoft.XMLHTTP");  }  if (!httprequest) {    alert("创建httprequest对象出现异常!");  }  httprequest.open("POST", "Handler.ashx", true);  //httprequest向handler发送post请求,最后参数是设定是否为异步请求,true为异步,false为同步  httprequest.onreadystatechange = function () {    //指定onreadystatechange事件句柄对应的函数    if (httprequest.readyState == 4) {      //4代表服务器返回完成      if (httprequest.status == 200) {        //200代表成功了        document.getElementById("text1").value = httprequest.responseText;        //responsetext表示服务器返回的文本,还有一种方式是responseXML是为了获取服务器返回的xml      }      else {        alert("AJAX服务器返回错误!");      }    }  }  httprequest.send();  //在这里才真正的向服务器端发送请求}

  

我们用jquery来前台js代码会变得十分简洁:

基于jquery编写的

注意:HTML代码要把button的onclick事件去掉,因为我们直接在js用了事件绑定。

$(document).ready(function () {  //button1绑定事件  $("#Button1").bind("click", function () {    $.ajax({      url: "Handler.ashx",      type: "POST",      success: function (data) {        //$("#text1").val(data);        document.getElementById("text1").value = data;      }    });  });});

  

不得不说jquery“简约而不简单”……

jquery中的$.ajax集合了get、post方法,默认的是get。

如果直接用POST的话,代码更简单

$(document).ready(function () {  //button1绑定事件  $("#Button1").bind("click", function () {    $.post("Handler.ashx", function (data) {  document.getElementById("text1").value = data;    });  });});

  

示例二:

一、XMLHttpRequest实现获取数据

不使用jQuery实现页面不刷新获取内容的方式,我们这里采用XMLHttpRequest原生代码实现;

js代码如下:

//1.获取a节点,并为其添加Oncilck响应函数document.getElementsByTagName("a")[0].onclick = function(){   //3、创建一个XMLHttpRequest();  var request = new XMLHttpRequest();  //4、准备发送请求的数据url  var url = this.href;  var method = "GET";  //5、调用XMLHttpRequest对象的open方法  request.open(method,url);  //6、调用XMLHttpRequest对象的send方法  request.send(null);  //7、为XMLHttpRequest对象添加onreadystatechange 响应函数  request.onreadystatechange = function(){    //8、判断响应是否完成:XMLHttpRequest 对象的readystate的属性值为4的时候    if(request.readyState == 4){       //9、在判断响应是否可用:XMLHttpRequest 对象status 属性值为200      if(request.status == 200){           //10、响应结果           alert(request.responseText);      }      }   }         //2、取消a节点的额默认行为      return false;   }

  

插入HTML代码:

 二、jQuery实现ajax获取信息

这个例子是动态的从后台获取数据来改变下拉按钮的内容;

如下:

function bindCarteam0(){     //通过URL请求数据     var URL = 
; $.ajax({ url:URL, type:'GET', dataType: "json", success:function(html){ var str=""; for(var i=0;i
"+html[i].name+""; } $("#carteam_code").empty().html(str); } }); }

  

HTML代码如下:

全部

  

转载于:https://www.cnblogs.com/good10001/p/4788029.html

你可能感兴趣的文章
php取整函数ceil,floor,round,intval函数的区别
查看>>
安卓应用安全指南 4.2.2 创建/使用广播接收器 规则书
查看>>
Stratus Technologies与海得控制升级长期战略合作,助力中国工业自动化与工业物联网解决方案...
查看>>
新建的SQL Server账号无法使用跟踪功能
查看>>
远程线程注入引出的问题
查看>>
「镁客·请讲」NXROBO林天麟:我们分三步走,首先要做的就是打通机器人行业的产业链...
查看>>
这款创意相机,能让盲人更真实的感触身边世界
查看>>
hdu 1285 确定比赛名次(很典型的拓扑排序)
查看>>
学习iOS【3】数组、词典和集合
查看>>
8Python全栈之路系列之Django Cookie 与Sessi
查看>>
nginx反向代理配置
查看>>
DecimalFormat用法
查看>>
流程DEMO-出差申请单
查看>>
sublime安装package control及常用插件
查看>>
vi/vim使用进阶: 指随意动,移动如飞 (一)
查看>>
zabbix3.2 snmp 监控交换机流量
查看>>
webkit 渲染机制
查看>>
unix系统安装及应用
查看>>
数据库连接学习--简单的通讯录
查看>>
详解mysql int类型的长度值问题
查看>>