对ajax基础的掌握随笔
原始的ajax,在第一个页面定义如下:
function createAjax() {
var xmlhttp;
if (window.ActiveXObject)
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");//对ie浏览器创建
else if (window.XMLHttpRequest)
xmlhttp = new XMLHttpRequest();//对其他浏览器创建
return xmlhttp;
}
//ajax_POST
function ajaxPOST() {
var xmlhttp = createAjax();//创建
var name = document.getElementById("name").value;
var pwd = document.getElementById("pwd").value;
xmlhttp.open("post", "get.aspx", true);//get/post, url , 是否异步传输
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //post方式必须加上的一句
xmlhttp.onreadystatechange = function () { //状态变化时执行的函数
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
document.getElementById("result").innerHTML = xmlhttp.responseText;
}
xmlhttp.send("name="+name+"&pwd="+pwd);//发送
}
//ajax_GET
function ajaxGET() {
var xmlhttp = createAjax();
var name = document.getElementById("name").value;
var pwd = document.getElementById("pwd").value;
xmlhttp.open("get", "get.aspx?name="+name+"&pwd="+pwd, true);
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
document.getElementById("result").innerHTML = xmlhttp.responseText;
}
xmlhttp.send(null);
}
onreadyStateChange事件是在readyState属性发生改变时触发的
readyState的值表示了当前请求的状态,在事件处理程序中可以根据这个值来进行不同的处理。
readyState有五种可取值0:尚未初始化,1:正在加载,2:加载完毕,3:正在处理;4:处理完毕。一旦readyState属性的值变成了4,就可以从服务器返回的响应数据进行访问了。
Status存储了服务器端返回的Http请求响应代码,它表示请求的处理结果.
Http状态码含义:
200 请求成功
202 请求被接受但处理未完成
400 错误请求
404 请求资源未找到
500 内部服务器错误
接着在data.aspx页面cs文件中的PageLoad中写如下代码:
Response.Clear();
string name = Request.QueryString["name"];
string pwd = Request.QueryString["pwd"];
Response.Write("名字是:" + name + "<br />密码是:" + pwd);
Response.End();
这样,这个ajax程序就完成了。
有点麻烦是不是?倘若用JQuery的ajax,那么事情变得简单得多。
data.aspx.cs页面不动,将第一个页面改为:
$(function () {
$("#btn").click(function () {
var name = document.getElementById("name").value;
var pwd = document.getElementById("pwd").value;
$("#result").load("get.aspx?name=" + name + "&pwd=" + pwd, function (responseText, textStatus, XMLHttpRequest) { //JQueryAjaxGet
document.getElementById("result").innerHTML = responseText;
}); //JQueryAjaxGet
$("#result").load("get.aspx", { "name": name,"pwd":pwd }, function (responseText, textStatus, XMLHttpRequest) { document.getElementById("result").innerHTML = responseText;
}); //JQueryAjaxPost
});
});
可以看到,不需要创建xmlHttp对象,只需要一个load()方法。
load()方法
对于get: url,回调函数(不需要返回success)
对于post: url,param,回调函数
回调函数function(responseTest,textStatus,XMLHttpRequest){},其中
responstTest //请求返回的内容
textStatus //请求状态:success,error
XMLHttpRequest //XMLHttpRequest对象
对ajax基础的掌握随笔的更多相关文章
- 史上最全的Ajax基础详解
同步请求和异步请求 先解释一下同步和异步的概念: 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯 ...
- 【Java EE 学习 31】【JavaScript基础增强】【Ajax基础】【Json基础】
一.JavaScript基础增强 1.弹窗 (1)使用window对象的showModelDialog方法和showModelessDialog方法分别可以弹出模式窗口和非模式窗口,但是只能在IE中使 ...
- Ajax基础知识《一》
对于网站开发人员,一定不会陌生的Ajax技术,本篇就让我们认识一下它,或许在日后的开发过程中我们就可以使用到.Ajax在那方面使用的比较多呢?答案:表单注册,传统的表单注册,有时需要填写大量的信息,当 ...
- Ajax基础2
什么是服务器 网页浏览过程的分析 如何配置自己的服务器程序(AMP) 什么是Ajax 无刷新数据读取 异步,同步 Ajax基础(2) 使用Ajax 基础请求显示txt的文件 字符集编码 缓存,阻止缓存 ...
- ajax基础语法、ajax做登录、ajax做用户名验证是否可用、ajax做关键字查询动态显示、ajax做用表格显示数据并增加操作列
AJAX: AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. ...
- Ajax基础--JavaScript实现
ajax原理 1.ajax 即“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),也就是无刷新数据读取. 通俗地讲就是:AJAX 通过在后台与 ...
- jQuery基础---Ajax基础教程(二)
jQuery基础---Ajax进阶 内容提纲: 1.加载请求 2.错误处理 3.请求全局事件 4.JSON 和 JSONP 5.jqXHR 对象 发文不易,转载请注明出处! 在 Ajax 基础一篇中, ...
- jQuery基础---Ajax基础教程
jQuery基础---Ajax基础 内容提纲: 1.Ajax 概述 2.load()方法 3.$.get()和$.post() 4.$.getScript()和$.getJSON() 5.$.ajax ...
- Ajax基础知识(二)
接上一篇 Ajax基础知识(一) 在上一篇博客里,抛弃了VS中新建aspx页面,拖个button写上C#代码的方式.使用ajax的方式,异步向服务器请求数据.我们让服务器只简单的返回一个" ...
随机推荐
- Java进阶(六)Java反射机制可恶问题NoSuchFieldException
作为一种重要特性,Java反射机制在很多地方会用到.在此做一小结,供朋友们参考. 首先从一个问题开始着手. 可恶的问题又来了,NoSuchFieldException,如下图所示: 完全不知道这个qu ...
- SWING中文件的上传
<pre name="code" class="java">import java.io.File; import java.io.FileInpu ...
- DB 查询分析器 6.04 在 Windows 10 上的安装与运行展示
DB查询分析器 6.04 在 Windows 10 上的安装与运行展示 中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员 http://www.csdn.net/art ...
- 有关Spring注解@xxx的零碎知识
在Java的Spring开发中经常使用一些注解,例如 @XXX 等等,在网上看到收集整理碎片知识,便于懒人计划^=^... 过去,Spring使用的Java Bean对象必须在配置文件[一般为a ...
- Dynamics CRM 2013 停用和激活按钮的显示与隐藏
CRM中命令栏上的有些按钮是可以通过权限控制显示和隐藏的,比如新建.保存.保存并关闭.删除等,但惟独激活和停用无法控制,但我们还是可以用权限去控制,只是稍微绕了那么一下. 这里就要涉及到按钮的自定义了 ...
- C语言符号优先级
优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 (表达式)/函数名(形参表) . 成员选择(对象) 对象.成员名 -& ...
- 配置hadoop-1.2.1 eclipse开发环境
写这篇文章的目的是记录解决配置过程中的问题 首先我们先看下这篇博文 配置hadoop-1.2.1 eclipse开发环境 但是在[修改 Hadoop 源码]这里,作者发布的 hadoop-core-1 ...
- 程序员的视角:java GC
GC(Garbage Collection 垃圾回收)的概念随着 java 的流行而被人们所熟知. 实际 GC 最早起源于20世纪60年代的 LISP 语言,是一种自动的内存管理机制. GC 要解决的 ...
- 用boost::bind构造boost::coroutine
class TestCoro { ... typedef boost::coroutines::coroutione<void ()> Coro; void CoroFun(Coro::c ...
- LeetCode之“链表”:Rotate List
题目链接 题目要求: Given a list, rotate the list to the right by k places, where k is non-negative. For exam ...