AJAX
1、简介
AJAX:(Asynchronnous JavaScript And XML)异步的JavaScript与XML。
AJAX 不是新的编程语言,而是一种使用现有标准的新方法。
下面是Ajax 应用程序所用到的基本技术:
①HTML 用于建立Web 表单并确定应用程序其他部分使用的字段。
②JavaScript 代码是运行Ajax 应用程序的核心代码,帮助改进与服务器应用程序的通信。
③DHTML 或Dynamic HTML,用于动态更新表单。我们将使用div、span 和其他动态HTML 元素来标记HTML。
④文档对象模型DOM 用于(通过JavaScript 代码)处理HTML 结构和(某些情况下)服务器返回的XML。
Ajax不是一种新技术,而是几种蓬勃发展的几种强大技术以新的方式组合而成,Ajax包括:基于XHTML和CSS标准的表示;使用Document Object Model进行动态的显示和交互;使用XML Request与服务器进行异步通讯;使用JavaScript绑定一切。
之前的是用户的请求直接向服务器提交。我们看一个计算的例子。
Ajax的工作原理,Ajax的核心是JavaScript和XMLHttpRequest。该对象在Internet Explorer5中首次引入,它是一种支持异步请求的技术。简单的说:XmlHttpRequest使你可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。在创建Web站点时,在客户端执行屏幕更新为用户提供了很大的灵活性能。下面是使用Ajax完成的功能:1、动态更新购物车的物品总数,无需用户单击Update并等待服务器发送整个页面。2、提升站点的性能,这是通过减少从服务器下载的数据量来实现的。例如:当更新购物车一个物品的数量时,会重新载入整个页面,这必须下载32K的数据,而使用Ajax计算新的总量,服务器只需要返回新的总量值,因此所需要的带宽仅仅为原来的百分之一。3、消除了用户每次输入时的页面刷新。例如,在Ajax中,如果用户在分页列表上单击Next,则服务器数据只刷新列表而不是整个页面。
用户的请求不再直接向服务器提交,而是使用XMLHttpRequest异步的向服务器发送,从而避免了重载页面。
特征:
异步发送请求
服务器响应的是数据不是页面内容。
2、XMLHttpRequest/ActiveXObject
XMLHttpRequest对象,现代浏览器均支持XMLHttpRequest对象(IE5 和IE6 使用ActiveXObject)。
XMLHttpRequest用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
XMLHttpRequest是整个Ajax技术的灵魂。Ajax异步发送请求,就是使用的XMLHttpRequest对象。
使用Ajax进行异步通信的过程:
创建XMLHttpRequest对象。
通过XMLHttpRequest对象向服务器发送请求。
创建回调函数,见识服务器响应状态,在服务器响应完成后,启动回调函数。
回调函数动态更新HTML页面。
创建XMLHttpRequest对象,所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及Opera)都支持创建XMLHttpRequest对象的语法:
Varxhr=new XMLHttpRequest();
为了应对所有的现代浏览器,包括IE5 和IE6,请检查浏览器是否支持XMLHttpRequest对象。如果支持,则创建XMLHttpRequest对象。如果不支持,则创建ActiveXObject:
var xmlHttpRequest;
function createXMLHttpRequest() {
if(window.XMLHttpRequest) {
//火狐谷歌
window.alert("支持XMLHttpRequest");
xmlHttpRequest = new XMLHttpRequest();
}else if (window.ActiveXObject) {
//IE5 IE6
try{
xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
window.alert("不支持XMLHttpRequest,但是是Msxml2.XMLHTTP");
} catch (e) {
try{
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
window.alert("不支持XMLHttpRequest,但是是Microsoft.XMLHTTP");
} catch (e) {
}
}
}
}
XMLHttpRequest对象的方法,属性和事件
方法:
1.open(method,url),
open方法的第一个参数指定HTTP方法或动作,这个字符不区分大小写,但是通常大家用大写字母匹配HTTP协议。”GET”和”POST”方法得到广泛的支持。”GET”用于常规请求,它适用于当URL完全指定请求资源,当请求对服务器没有任何副作用以及当服务器的响应式可缓存时。“POST”
方法常用于HTML表单。它在请求主体中包含额外的数据(表单数据)且这些数据长存储在服务器上的数据库中(副作用)。相同URL的重复POST 请求从服务器得到的响应可能不同,同时不应该缓存使用这个方法的请求。
2.setRequestHeader(“Content-Type”,” application/x-www-form-urlencoded”)
在使用POST方法的时候需要“Content-Type”头指定请求主体的MIME类型。
3.send()
发起HTTP请求,在使用GET请求的时候这个方法没有参数时候就写上参数null,在使用POST请求的时给这个方法传递参数
属性:
XMLHttpRequest的属性:
onreadystatechange:该属性用于指定XMLHttpRequest对象状态发生改变时的事件处理函数。
XMLHttpRequest的对象有如下几种状态:
0:XMLHttpRequest对象还没有完成初始化。
1:XMLHttpRequest对象开始发送请求。
2:XMLHttpRequest对象的请求发送完成。
3:XMLHttpRequest对象开始读取服务器的响应。
4:XMLHttpRequest对象读取服务器响应结束。
它的这几个状态可以通过下面的readyState属性读取。每当XMLHttpRequest对象的readyState属性改变时,其onreadystatechange 属性指定的方法都会被触发。
readyState:获取XMLHttpRequest对象的处理状态
responseText:获取服务器的响应文本,得到是文本形式。
responseXML:获取服务器响应的XML文档对象,得到的是xml。
status:服务器返回的状态码(数字),服务器响应完成时,才有状态码。
statusText:服务器返回的状态文本信息,服务器响应完成时,才有状态信息。
服务器的响应完成后,依然不可以直接获取服务器响应。因为服务器响应也有很多的情况。
响应状态码(status):
1xx:请求收到,继续处理
100——客户必须继续发出请求
101——客户要求服务器根据请求转换HTTP协议版本
2xx:操作成功收到,分析、接受
200——响应正常
201——提示知道新文件的URL
202——接受和处理、但处理未完成
203——返回信息不确定或不完整
204——请求收到,但返回信息为空
205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件
206——服务器已经完成了部分用户的GET请求
3xx:完成此请求必须进一步处理
300——请求的资源可在多处得到
301——删除请求数据
302——在其他地址发现了请求数据
303——建议客户访问其他URL或访问方式
304——客户端已经执行了GET,但文件未变化。(资源没有任何修改)
305——请求的资源必须从服务器指定的地址得到
306——前一版本HTTP中使用的代码,现行版本中不再使用
307——申明请求的资源临时性删除
4xx:请求包含一个错误语法或不能完成
400——错误请求,如语法错误
401——请求授权失败
402——保留有效ChargeTo头响应
403——没有权限访问资源
404——资源不存在
405——用户在Request-Line字段定义的方法被禁止
406——根据用户发送的Accept拖,请求资源不可访问
407——类似401,用户必须首先在代理服务器上得到授权
408——客户端没有在用户指定的饿时间内完成请求
409——对当前资源状态,请求不能完成
410——服务器上不再有此资源且无进一步的参考地址
411——服务器拒绝用户定义的Content-Length属性请求
412——一个或多个请求头字段在当前请求中错误
413——请求的资源大于服务器允许的大小
414——请求的资源URL长于服务器允许的长度
415——请求资源不支持请求项目格式
416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求
也不包含If-Range请求头字段
417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下
一级服务器不能满足请求
5xx:服务器执行一个完全有效请求失败
500——服务器产生内部错误
501——服务器不支持请求的函数
502——服务器暂时不可用,有时是为了防止发生系统过载
503——服务器过载或暂停维修
504——关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长
505——服务器不支持或拒绝支请求头中指定的HTTP版本
status状态码,statusText是状态文本。
服务器常见的状态码:
200:服务器响应正常。
304:该资源在上次请求之后没有任何修改。
404:需要访问的资源不存在。
414:请求的URL太长。
500:服务器内部错误。
statusText是和status相对应的,比如:200->OK,500->Internal Server Error。
两种方法的模板
GET方法示例:
function add(){
//初始化XMLHttpRequest对象
createXMLHttpRequest();
var add1 = document.getElementsByName("add1")[0].value;
var add2 = document.getElementsByName("add2")[0].value;
//打开与服务器的连接
xmlHttpRequest.open("GET","/abc/servlet/ajax?type=add&add1="+add1+"&add2="+add2);
//设置回调函数
xmlHttpRequest.onreadystatechange=handleResult;
xmlHttpRequest.send(null);
}
POST方法示例:
function add(){
//初始化XMLHttpRequest对象
createXMLHttpRequest();
var add1 = document.getElementsByName("add1")[0].value;
var add2 = document.getElementsByName("add2")[0].value;
//打开与服务器的连接
xmlHttpRequest.open("POST","/abc/servlet/ajax");
//设置请求头
xmlHttpRequest.setRequestHeader("Content-Type"," application/x-www-form-urlencoded");
//设置回调函数
xmlHttpRequest.onreadystatechange=handleResult;
xmlHttpRequest.send("type=add&add1="+add1+"&add2="+add2);
}
1)响应普通文本
2)<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%>
3)<%
4)S tring path2 = request.getContextPath();
5)S tring basePath2 = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path2+"/"; 6)%>
7)
8)
9)
10)
11)
12)
13)
14)
15)
16)
17)
18)
19)
22)
23)
24) +
25) =
26)
27)
28)var xmlHttpRequest;
29)function createXMLHttpRequest() {
30)if(window.XMLHttpRequest) {
31)//火狐谷歌
32)window.alert("支持XMLHttpRequest");
33)xmlHttpRequest = new XMLHttpRequest();
34)}else if (window.ActiveXObject) {
35)//IE5 IE6
36)try {
37)xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
38)window.alert("不支持XMLHttpRequest,但是是Msxml2.XMLHTTP");
39)} catch (e) {
40)try {
41)xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
42)window.alert("不支持XMLHttpRequest,但是是Microsoft.XMLHTTP");
43)} catch (e) {
44)
45)}
46)}
47)}
48)}
49)function add(){
50)//初始化XMLHttpRequest对象
51)createXMLHttpRequest();
52)var add1 = document.getElementsByName("add1")[0].value;
53)var add2 = document.getElementsByName("add2")[0].value;
54)//打开与服务器的连接
55)// xmlHttpRequest.open("GET","/abc/servlet/ajax?type=add&add1="+add1+"&add2="+add2);
56)xmlHttpRequest.open("POST","/abc/servlet/ajax");
57)//设置请求头
58)xmlHttpRequest.setRequestHeader("Content-Type"," application/x-www-form-urlencoded"); 59)//设置回调函数
60)xmlHttpRequest.onreadystatechange=handleResult;
61)xmlHttpRequest.send("type=add&add1="+add1+"&add2="+add2);
62)}
63)function handleResult(){
64)if(xmlHttpRequest.readyState == 4){
65)if(xmlHttpRequest.status == 200){
66)var result = xmlHttpRequest.responseText;
67)document.getElementsByName("result")[0].value=result;
68)}
69)}
70)}
71)
72)
73)
74)ajax.java
75)publicvoid doPost(HttpServletRequest request, HttpServletResponse response)
76)throws ServletException, IOException {
77)
78)PrintWriter out = response.getWriter();
79)String type = request.getParameter("type");
80)if("add".equals(type)){
81)String add1 = request.getParameter("add1");
82)String add2 = request.getParameter("add2");
83)int result = Integer.parseInt(add1) + Integer.parseInt(add2);
84)response.setContentType("text/plain;charset=utf-8");
85)out.println(result);
86)out.flush();
87)}
88)
2)响应XML
add.java
publicvoid doPost(HttpServletRequest request, HttpServletResponseresponse)
throws ServletException, IOException {
response.setContentType("text/xml;charset=UTF-8");
OutputStreamos=response.getOutputStream();
String username=request.getParameter("username");
if("张三".equals(username)){
Document document = DocumentHelper.createDocument();
Element student = document.addElement("student");
student.addElement("name").setText("张三");
student.addElement("age").setText("20");
student.addElement("address").setText("浙江杭州");
student.addElement("email").setText("zhangsan@https://www.360docs.net/doc/ad1575256.html,");
XMLWriter out = new XMLWriter(os);
out.write(document);
out.flush();
out.close();
System.out.println("输出");
}else{
Document document = DocumentHelper.createDocument();
Element student = document.addElement("student");
student.addElement("name").setText("李四");
student.addElement("age").setText("30");
student.addElement("address").setText("浙江杭州");
student.addElement("email").setText("zhangsan@https://www.360docs.net/doc/ad1575256.html,");
XMLWriter out = new XMLWriter(os);
out.write(document);
out.flush();
out.close();
}
}
.jsp
请输入学生的姓名:
var xmlHttpRequest;
//创建XMLHttpRequest对象
function createXMLHttpRequest() {
if(window.XMLHttpRequest) {
//火狐谷歌
window.alert("支持XMLHttpRequest");
xmlHttpRequest = new XMLHttpRequest();
}else if (window.ActiveXObject) {
//IE5 IE6
try{
xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
}
}
//发送请求
function getStudent(){
var username=document.getElementById("username").value;
createXMLHttpRequest();
xmlHttpRequest.open("GET","/aaa/servlet/add?type=add&username="+username,true);
xmlHttpRequest.onreadystatechange=dealresult;
xmlHttpRequest.send(null);
}
function dealresult(){
if(xmlHttpRequest.readyState==4&&xmlHttpRequest.status==200){
var xmlText=xmlHttpRequest.responseXML;
alert(xmlText);
var name=xmlText.getElementsByTagName("name")[0].innerHTML;
var age = xmlText.getElementsByTagName("age")[0].innerHTML;
var address=xmlText.getElementsByTagName("address")[0].innerHTML;
var email = xmlText.getElementsByTagName("email")[0].innerHTML;
document.getElementById("studentContent").innerHTML="name"+name+",age:"+age+",address:"+address+"email:"+email;
}
}
3)加法计算
如果使用GET方法GET方法:
使用POST方法:4)三级联动
jQuery Ajax 全解析(.ajax .post .get)
jQuery Ajax 全解析【.ajax .post .get】 1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中。 url (String) : 请求的HTML页的URL地址。 data (Map) : (可选参数) 发送至服务器的 key/value 数据。 callback (Callback) : (可选参数) 请求完成时(不需要是success的)的回调函数。 这个方法默认使用 GET 方式来传递的,如果[data]参数有传递数据进去,就会自动转换为POST方式的。jQuery 1.2 中,可以指定选择符,来筛选载入的 HTML 文档,DOM 中将仅插入筛选出的 HTML 代码。语法形如 "url #some > selector"。 这个方法可以很方便的动态加载一些HTML文件,例如表单。 示例代码: $(".ajax.load").load("https://www.360docs.net/doc/ad1575256.html,/QLeelulu/archive/2008/03 /30/1130270.html .post", function (responseText, textStatus, XMLHttpRequest){ this;//在这里this指向的是当前的DOM对象,即 $(".ajax.load")[0] //alert(responseText);//请求返回的内容 //alert(textStatus);//请求状态:success,error //alert(XMLHttpRequest);//XMLHttpRequest对象 }); 注:不知道为什么URL写绝对路径在FF下会出错,知道的麻烦告诉下。下面的get()和post()示例使用的是绝对路径,所以在FF下你将会出错并不会看到返回结果。还有get()和post()示例都是跨域调用的,发现传上来后没办法获取结果,所以把运行按钮去掉了。 2. jQuery.get( url, [data], [callback] ):使用GET方式来进行异步请求 参数: url (String) : 发送请求的URL地址.
ajax原理介绍
ajax原理介绍 AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 主要包含了以下几种技术 Ajax(Asynchronous JavaScript + XML)的定义 基于web标准(standards-based presentation)XHTML+CSS的表示; 使用 DOM(Document Object Model)进行动态显示及交互; 使用 XML 和 XSLT 进行数据交换及相关操作; 使用 XMLHttpRequest 进行异步数据查询、检索; 使用 JavaScript 将所有的东西绑定在一起。英文参见Ajax的提出者Jesse James Garrett的原文。 类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合成”式,derivative/composite)的技术正在出现,如“AFLAX”。 AJAX的应用使用支持以上技术的web浏览器作为运行平台。这些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式对象,也不支持XSLT。 与传统的web应用比较 传统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然後返回一个新的网页。这个做法浪费了许多带宽,因为在前後两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。 与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP 或其它一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。
ajax与php结合实现用户登录(详解)
这是login.html页面
jQuery 5种调用AJax的方法
jQuery 如何调用AJax(五种方法)方法一:load() 使用load方法可以帮助你加载非本地的HTML页面,并注入到当前调用的DOM中。 $.ajaxSetup({ cache: false }); var ajax_load = ""; var loadUrl = "ajax/load.php"; $("#load_button").click(function() { $("#result").html(ajax_load).load(loadUrl);
}); cache: false 的意思是让浏览器不执行缓存功能,这样的话页面的内容将实时更新,否则某些浏览器会出现内容不更新的问题,当点击按钮后,因为加载过程需要时间,所以这里我们先使用.html方法来添加一个”加载中”的图片,然后执行load方法。 高级使用方法: 1. 加载页面某一部分 例如只加载ID为”pic”的部分,代码如下: $("#load_button").click(function() { $("#result").html(ajax_load).load(loadUrl + " #pic"); }); 2. 递交参数执行页面加载
可以给load方法添加GET或者POST参数,代码如下: $("#load_get").click(function() { $("#result").html(ajax_load).load(loadUrl, "page=0&size=10"); }); $("#load_post").click(function() { $("#result").html(ajax_load).load(loadUrl, { page: 0, size: 10 }); }); 3. 添加回调函数 回调函数可以让你在结束AJAX调用后调用该函数,比如在页面load后提示用户加载完毕:
jQuery Ajax 应用实例解析大全
jQuery Ajax应用解析 jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。 我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到). 1. load( url, [data], [callback] ) :载入远程HTML 文件代码并插入至DOM 中。 url(String) : 请求的HTML页的URL地址。 data(Map) : (可选参数) 发送至服务器的key/value 数据。 callback(Callback) : (可选参数) 请求完成时(不需要是success的)的回调函数。 这个方法默认使用GET 方式来传递的,如果[data]参数有传递数据进去,就会自动转换为POST方式的。jQuery 1.2 中,可以指定选择符,来筛选载入的HTML 文档,DOM 中将仅插入筛选出的HTML 代码。语法形如"url #some > selector"。 这个方法可以很方便的动态加载一些HTML文件,例如表单。 示例代码: $(".ajax.load").load("https://www.360docs.net/doc/ad1575256.html,/QLeelulu/archive/2008/03/30/1130270.html .post", function (responseText, textStatus, XMLHttpRequest){ this;//在这里this指向的是当前的DOM对象,即$(".ajax.load")[0] //alert(responseText);//请求返回的内容 //alert(textStatus);//请求状态:success,error //alert(XMLHttpRequest);//XMLHttpRequest对象 }); 这里将显示结果。 注:不知道为什么URL写绝对路径在FF下会出错,知道的麻烦告诉下。下面的get()和post()示例使用的是绝对路径,所以在FF下你将会出错并不会看到返回结果。还有get()和post()示例都是跨域调用的,发现传上来后没办法获取结果,所以把运行按钮去掉了。 2. jQuery.get( url, [data], [callback] ):使用GET方式来进行异步请求 参数: url(String) : 发送请求的URL地址. data(Map) : (可选) 要发送给服务器的数据,以Key/value 的键值对形式表示,会做为QueryString附加到请求URL中。 callback(Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。 这是一个简单的GET 请求功能以取代复杂$.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用$.ajax。示例代码: $.get("./Ajax.aspx", {Action:"get",Name:"lulu"}, function (data, textStatus){
jQuery中的Ajax几种请求方法
jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。 废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到). 1. load( url, [data], [callback] ) :载入远程HTML 文件代码并插入至DOM 中。 url (String) : 请求的HTML页的URL地址。 data (Map) : (可选参数) 发送至服务器的key/value 数据。 callback (Callback) : (可选参数) 请求完成时(不需要是success的)的回调函数。 这个方法默认使用GET 方式来传递的,如果[data]参数有传递数据进去,就会自动转换为POST方式的。jQuery 1.2 中,可以指定选择符,来筛选载入的HTML 文档,DOM 中将仅插入筛选出的HTML 代码。语法形如"url #some > selector"。 这个方法可以很方便的动态加载一些HTML文件,例如表单。 示例代码: $(".ajax.load").load("[url]https://www.360docs.net/doc/ad1575256.html,/QLeelulu/archive/2008/03/30/1130270.html[/url] .post", function (responseText, textStatus, XMLHttpRequest){ this;//在这里this指向的是当前的DOM对象,即$(".ajax.load")[0] //alert(responseText);//请求返回的内容 //alert(textStatus);//请求状态:success,error //alert(XMLHttpRequest);//XMLHttpRequest对象 }); 这里将显示结果。 注:不知道为什么URL写绝对路径在FF下会出错,知道的麻烦告诉下。下面的get()和post()示例使用的是绝对路径,所以在FF下你将会出错并不会看到返回结果。还有get()和post()示例都是跨域调用的,发现传上来后没办法获取结果,所以把运行按钮去掉了。 2. jQuery.get( url, [data], [callback] ):使用GET方式来进行异步请求 参数: url (String) : 发送请求的URL地址. data (Map) : (可选) 要发送给服务器的数据,以Key/value 的键值对形式表示,会做为QueryString附加到请求URL中。 callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。 这是一个简单的GET 请求功能以取代复杂$.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用$.ajax。示例代码: $.get("./Ajax.aspx", {Action:"get",Name:"lulu"}, function (data, textStatus){ //返回的 data 可以是 xmlDoc, jsonObj, html, text, 等等. this; // 在这里this指向的是Ajax请求的选项配置信息,请参考下图
PHP JQUERY AJAX 提交表单FORM详解
PHP jQuery Ajax Form表单提交实例解析,包括创建一个表单html页面、添加JQuery代码、jquery ajax表单提交、jquery ajax表单验证、反馈信息给用户,php ajax 表单验证,php ajax提交表单,php ajax form验证,php ajax提交form。 本实例用到JQuery类库本身的函数和功能,所有表单信息利用PHPMailer类库邮件的形式发送。 1、创建一个表单html页面 表单部分html代码 这里用一个id为contact_form来包含整个包含信息;这是有意义的,稍后在JavaScript与用户交互信息的时候会用到,这里form标签的属性里面既包含了method和action;这个意义其实不大,因为Javascript直接操作DOM,所以没有这两个属性也是可以的;务必要给用户输入的input标签加独立的id,这和第二点原理类似。否则,无法看到正常的效果。 2、添加JQuery代码 这里假设你已经从JQuery官方网站上下载了JQuery基库,然后上传到了你的WEB服务器,并添加到你要使用的网页中。
现在新建一个JS文件 第1行的function()函数与Jquery的document.ready函数用法和功能相同,都是在DOM准备完毕后自动触发。第2行里面是一个单击触发函数click(),需要注意的是,在HTML一页提交按钮上需要放置一个名为“button”的Class,以模拟实现submit 提交表单的功能,从第二点我们可以看出,JQuery可以很好的将结构和逻辑分离。 3、jquery ajax表单验证 在实际应用中,这一步是必不可少的。在用户漏填,错填某个项目时,及时提示。
jquery ajax实现跨域请求的方法
这篇文章主要介绍了jquery+ajax实现跨域请求的方法,详细介绍了前台及后台的处理方法,是非常实用的技巧,需要的朋友可以参考下 本文实例讲述了jquery+ajax实现跨域请求的方法。分享给大家供大家参考。具体实现方法如下: 说明:这里的datatype 为jsonp ;type 只能为get 前台请求代码如下: 代码如下: $.ajax({ type: get, url: , datatype: jsonp, jsonp: jsoncallback, success: function (result) { alert(result.success); alert(result.content); }, error: function (result, status) { //处理错误 } }); 后台处理代码validaccountsexists.aspx如下: 代码如下: string accounts = gamerequest.getquerystring(accounts); string jsoncallback = gamerequest.getquerystring(jsoncallback); response.contentencoding =system.text.encoding.utf8; response.contenttype = application/json; response.write(jsoncallback + ({\success\:\true\,\content\:\ + accounts + \})); response.end(); 希望本文所述对大家的jquery程序设计有所帮助。
jQuery调用AJAX异步操作超清晰教程
JQUERY AJAX异步操作详细说明 AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和XML)。它并非一种新的技术,而是以下几种原有技术的结合体。 1)使用CSS和XHTML来表示。 2)使用DOM模型来交互和动态显示。 3)使用XMLHttpRequest来和服务器进行异步通信。 4)使用javascript来绑定和调用。 通过AJAX异步技术,可以在客户端脚本与web服务器交互数据的过程中使用XMLHttpRequest对象来完成HTTP请求(Request)/应答(Response)模型: 1)不需要用户等待服务端响应。在异步派发XMLHttpRequest请求后控制 权马上就被返回到浏览器。界面不会出现白板,在得到服务器响应之前 还可以友好的给出一个加载提示。 2)不需要重新加载整个页面。为XMLHttpRequest注册一个回调函数,待 服务器响应到达时,触发回调函数,并且传递所需的少量数据。“按需 取数据”也降低了服务器的压力。 3)不需要使用隐藏或内嵌的框架。在XHR对象之前,模拟Ajax通信通常 使用hack手段,如使用隐藏的或内嵌的框架(
AJAX(XMLHttpRequest)进行跨域请求方法详解
发表于:2010-1-11 浏览:965 作者:转载遗失来源:网络转载 关键字:AJAX,详解,请求 描述:注意:以下代码请在Firefox3.5、Chrom e3.0、Safari4之后的版本中进行测试。IE8的实现方法与其他浏览不同。跨域请求,顾名思义,就是一个站点中的资源去访问另外一个不同域名站点上的资源。这种情况很常见 注意:以下代码请在Firefox 3.5、Chrome 3.0、Safari 4之后的版本中进行测试。IE8的实现方法与其他浏览不同。 跨域请求,顾名思义,就是一个站点中的资源去访问另外一个不同域名站点上的资源。这种情况很常见,比如说通过style 标签加载外部样式表文件、通过img 标签加载外部图片、通过 script 标签加载外部脚本文件、通过Webfont 加载字体文件等等。默认情况下,脚本访问文档属性等数据采用的是同源策略(Same origin policy)。 那么,什么是同源策略呢?如果两个页面的协议、域名和端口是完全相同的,那么它们就是同源的。同源策略是为了防止从一个地址加载的文档或脚本访问或者设置从另外一个地址加载的文档的属性。如果两个页面的主域名相同,则还可以通过设置document.domain 属性将它们认为是同源的。 随着Web2.0 和SNS 的兴起,Web 应用对跨域访问的需求也越来越多,但是,在脚本中进行跨域请求是受安全性限制的,Web 开发人员迫切需要提供一种更安全、方便的跨域请求方式来融合(Mashup)自己的Web 应用。这样做的一个好处就是可以将请求分摊到不同的服务器,减轻单个服务器压力以提高响应速度;另外一个好处是可以将不同的业务逻辑分布到不同的服务器上以降低负载。 值得庆幸的是,跨域请求的标准已经出台,主流浏览器也已经实现了这一标准。W3C 工作组中的 Web Applications Working Group(Web 应用工作组)发布了一个Cross-Origin Resource Sharing(跨域资源共享,该规范地址:https://www.360docs.net/doc/ad1575256.html,/TR/access-control/和 https://www.360docs.net/doc/ad1575256.html,/2006/waf/access-control/)推荐规范来解决跨域请求的问题。该规范提供了一种更安全的跨域数据交换方法。具体规范的介绍可以访问上面提供的网站地址。值得注意的是:该规范只能应用在类似XMLHttprequest 这样的API 容器内。IE8、Firefox 3.5 及其以后的版本、Chrome浏览器、Safari 4 等已经实现了Cross-Origin Resource Sharing 规范,已经可以进行跨域请求了。 Cross-Origin Resource Sharing 的工作方式是通过添加HTTP 头的方法来判断哪些资源允许 Web 浏览器访问该域名下的信息。然而,对于那些HTTP 请求导致用户数据产生副作用的请求方法(特别是对于除了GET、某些MIME 类型的POST 之外的HTTP方法),该规范要求浏览器对请求进行“预先验”,通过发送HTTP 的OPTIONS 请求头询问服务器有哪些支持的方法,在征得服务器的同意后,再使用实际的HTTP 请求方法发送实际的请求。服务器也可以通知客户端是否需要将验证信息(如Cookie 和HTTP Authentication 数据)随同请求一起发送。 下面我们就采用实际的例子说明Cross-Origin Resource Sharing 是如何工作的。 1,简单请求
AJAX技术简介
AJAX技术简介 知识点: 1、基本概念 AJAX ——A synchronous J avaScript a nd X ML 异步的Javascript和XML 传统的WEB模型:同步模型——必须是一次请求,一次响应。 每次请求服务器(地址栏输入,点击超链接,提交表单),页面都会刷新。 传统的WEB模型——同步模型——缺点: 由于浏览器在向服务器发出请求之后,必须等待服务器给响应,有可能页面成为一片空白,客户体验不好。 由于每次都要刷新整个页面,导致服务器的网络带宽被浪费。
AJAX技术的WEB模型:异步模型——可以连续发出多个请求给服务器,在随后 不确定的时间里响应回来。 我们有了一种新的请求服务器的方法(以前传统的浏览器请求服务器的方式:地址栏输入、点击超链接、提交表单),通过下图的Ajax Engine(引擎)。 我们可以通过AJAX引擎发出多个请求,然后可以接收服务器的响应。 此时可以不必刷新整个浏览器页面,就能更新页面的部分内容。 AJAX技术优势: 1、传统模式每次请求页面都会刷新,这样比较占用服务器网络带宽。 AJAX模式可以实现局部刷新,大大节约服务器网络带宽。 2、AJAX模式能很好的改善客户体验。 2、X MLHttpRequest使用 Ajax Engine在浏览器中是一个对象,它的类型是:XMLHttpRequest 1、创建XMLHttpRequest对象(它在不同浏览器中,创建方式不一样的;但是使用上是一样的)