❶ ajax请求的五个步骤
ajax请求的五个步骤:
1.建立XMLHttpRequest对拆毁镇象。
2.设置回调函数。
3.使用open方法与服务器建立链接。
4.向服务器发送数据。
5.在回调函数中针对不同的响应状态进行处理。
Ajax即AsynchronousJavascriptAndXML(异步JavaScript和XML)在 2005年被Jesse James Garrett提出的新术语,用来描述一种使用现有技术集合的‘新’方法。
包括:HTML或XHTML, CSS,JavaScript,DOM, XML,XSLT, 以及最重要的余纤XMLHttpRequest。
使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。
Ajax这个术语源自描述从基于 Web 的应用到基于数据的应用:
Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程旅粗序的技术。
使用 JavaScript 向服务器提出请求并处理响应而不阻塞用户核心对象XMLHttpRequest。通过这个对象,您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据,即在不需要刷新页面的情况下,就可以产生局部刷新的效果。
❷ ajax请求的五个步骤是什么
第1步 创建异步对象,首先,创建一个XMLHttpRequest异步对象。
Ajax即AsynchronousJavascriptAndXML(异步JavaScript和XML)在 2005年被Jesse James Garrett提出的简岁友新术语,用来描述一种使用现有技术集合的‘新’方法。
使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。
Ajax这个术语源自描述从基于 Web 的应用到基于数据的应用。
Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。
❸ 一分钟学会什么是Ajax及Ajax请求的五个步骤
AJAX的意思就是异步的JavaScript和XML。简而言之,它是使用XMLHttpRequest对象与服务器端通信的脚本语言。它可以发送及接收各种格式的信息,包括JSON、XML、HTML和文本文件。AJAX最为吸引人的就是它的“异步”特性,AJAX可以无需刷新页面而与服务器端进行通信。
Ajax请求的五个步骤:
1、建立xmlHttpRequest对象
if(window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
if(xmlHttp.overrideMimeType) {
xmlHttp.overrideMimeType("text/xml");
}
} else if(window.ActiveXobject) {
var activeName = ["MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
for(var i = 0; i < activeName.length; i++) {
try {
xmlHttp = new ActiveXobject(activeName[i]);
break;
} catch(e) {}
}
}
if(!xmlHttp) {
alert("创建xmlhttprequest对象失败");
} else {}
2、设置回调函数
xmlHttp.onreadystatechange= callback;
function callback(){}
3、使用OPEN方法与服务器建立连接xmlHttp.open("get","ajax?name="+ name,true)
此步注意设置http的请求方式(post/get),如果是POST方式,注意设置请求头信息xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
4、向服务器端发送数据
xmlHttp.send(null);如果是POST方式就不为空
5、在回调函数中针对亏局不同的响应状态进行处理
if(xmlHttp.readyState == 4){ //判断交互是否成功
if(xmlHttp.status == 200){ //获取服务器返回的数据 销困让 //获取纯文本数据
var responseText =xmlHttp.responseText;
document.getElementById("info").innerHTML = responseText;
}
}
(3)ajax用什么方法使用扩展阅读:
Ajax优缺点
优点:
1、异步请求,不妨碍用户浏览页面或者其他操作。
2、局部刷新,无需重新刷新页面。
3、界面与应用分离。有利于分工合作、减少非技术人员对页面的修改造成的WEB应用程序错误、提高效率、也更加适用于现在的尺蔽发布系统。
4、基于标准被广泛支持。
5、前端和后端负载平衡。最大程度的减少冗余请求和响应对服务器造成的负担,提升站点性能。
缺点:
1、back和History,对浏览器机制的破坏。
2、安全问题。易受到黑客攻击。
3、对搜索引擎支持较弱。
4、不能很好支持移动设备。
5、违背URL和资源定位的初衷。
❹ Jquery中常用的AJax的方法有哪几个
jQuery中ajax的4种常用请求方式:
1.$.ajax()返回其创建的 XMLHttpRequest 对象。
$.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息。如果指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml")。
实例:
保存数据到服务器,成功时显示信息。
$.ajax({ type: "post", dataType: "html", url: '/Resources/GetList.ashx', data: dataurl, success: function (data) {
if (data != "") {
$("#pager").pager({
pagenumber: pagenumber, pagecount: data.split("$$")[1],
buttonClickCallback: PageClick });
$("#anhtml").html(data.split("$$")[0]);
}
}
});
2.通过远程 HTTP GET 请求载入信息。
这是一个简单的 GET 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数
。如果需要在出错时执行函数,请使用 $.ajax。 实例:
$.get("test.cgi", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
3. 通过远程 HTTP POST 请求载入信息。 这是一个简单的 POST 请求功能以取代复杂 $.ajax 。
请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。
实例:
$.post("/Resources/addfriend.ashx", { "fid": fids, "fname": fnames, "tuid": tuids, "tuname": tunames },
function (data) {
if (data == "ok") {
alert("添加成功!");
}
}
)
4.通过 HTTP GET 请求载入 JSON 数据。
实例:
$.getJSON("api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&
jsoncallback=?,前面加上http://", function(data){
$.each(data.items, function(i,item){
$("<img/>").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
});
❺ Jquery 中的$ajax方法到底该怎么用
运用ajax()方法,比其它如load()、get()、post()全局性函数它更多地关注实现过皮碧粗程中的细节;首先要了解其参数列表:
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。
type:要求为String类型的参数,请求方燃镇式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。
timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设置。
async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。
cache:要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false)。设置为false将不会从浏览器缓存中加载请求信息。
data: 要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格式。get请求中将附加在url后。防止这种自动转换,可以查看processData选项。对象必须为key/value格式,例如{foo1:"bar1",foo2:"bar2"}转换为&foo1=bar1&foo2=bar2。如果是数组,JQuery将自动为不同值对应同一个名称。例如{foo:["bar1","bar2"]}转换为&foo=bar1&foo=bar2。
dataType: 要求为String类型的参数,预期服务器返回的数据类型。如果不指定,JQuery将自动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递。可用的类型如下:
xml:返回XML文档,可用JQuery处理。
html:返回纯文本HTML信息;包含的script标签会在插入DOM时执行。
script:返回纯文本JavaScript代码。不会自动缓存结果。除非设置了cache参数。注意在远程请求时(不在同一个域下),所有post请求都将转为get请求。
json:返回JSON数据。
jsonp:JSONP格式。使用SONP形式调用函数时,例如myurl?callback=?,JQuery将自动替换后一个 “?”为正确的函数名,以执行回调函数。
text:返回纯文本字符串。
beforeSend:要求为Function类型的参数,发送请求前可以修改XMLHttpRequest对象的函数,例如添加自定义HTTP头。在beforeSend中如果返回false可以取消本次ajax请求XMLHttpRequest对象是惟一的参数。
function(XMLHttpRequest){
this; //调用本次ajax请求时传递的options参数
}
complete:要求为Function类型的参数,请求完成后调用的回调函数(请求成功或失败时均调用)。参数:XMLHttpRequest对象和一个描述成功请求类型的字符串。
function(XMLHttpRequest, textStatus){
this; //调用本次ajax请求时传递的options参数
}
success:要求为Function类型的参数,请求成功后调用的回调函数,有两个参数。
(1)由服务器返回,并根据dataType参数慧告进行处理后的数据。
(2)描述状态的字符串。
function(data, textStatus){
//data可能是xmlDoc、jsonObj、html、text等等
this; //调用本次ajax请求时传递的options参数
error:要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错误信息、捕获的错误对象(可选)。
ajax事件函数如下:
function(XMLHttpRequest, textStatus, errorThrown){
//通常情况下textStatus和errorThrown只有其中一个包含信息
this; //调用本次ajax请求时传递的options参数
}
contentType:要求为String类型的参数,当发送信息至服务器时,内容编码类型默认为"application/x-www-form-urlencoded"。该默认值适合大多数应用场合。
dataFilter:要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。
function(data, type){
//返回处理后的数据
return data;
}
global:要求为Boolean类型的参数,默认为true。表示是否触发全局ajax事件。设置为false将不会触发全局ajax事件,ajaxStart或ajaxStop可用于控制各种ajax事件。
ifModified:要求为Boolean类型的参数,默认为false。仅在服务器数据改变时获取新数据。服务器数据改变判断的依据是Last-Modified头信息。默认值是false,即忽略头信息。
jsonp:要求为String类型的参数,在一个jsonp请求中重写回调函数的名字。该值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,例如{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。
username:要求为String类型的参数,用于响应HTTP访问认证请求的用户名。
password:要求为String类型的参数,用于响应HTTP访问认证请求的密码。
processData:要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度来讲并非字符串)以配合默认内容类型"application/x-www-formurlencoded"。如果要发送DOM树信息或者其他不希望转换的信息,请设置为false。
scriptCharset:要求为String类型的参数,只有当请求时dataType为"jsonp"或者"script",并且type是GET时才会用于强制修改字符集(charset)。通常在本地和远程的内容编码不同时使用。
❻ ajax请求有哪几种方式
1. get() 方法通过远程 HTTP GET 请求载入信息。
// 1.创建
var ajax = new XMLHttpRequest();
// 2设置
ajax.open('get', '01.Ajax_get.php');
// 3.发送
ajax.send();
// 4.状态事件
ajax.onreadystatechange = function() {
if (ajax.readyState == 4 && ajax.status == 200) {
// 5.使用返回的数据 修改页面的内容
// responseText 返回的就是一个 字符串
// 我们 在ajax 中 如果 是通过 ajax.responseText 获取到的 统统都是字符串
console.log(ajax.responseText);
}
2.post() 通过远程做肆含 HTTP POST 请求载入信息。这是一个简单的 POST 请求功能以取代复杂的$.ajax().请求成功时可调用回调函数。
//创建ajax实例
var ajax = new XMLHttpRequest();
// 使用post请求
ajax.open('post','ajax_post.php');
// 如雹昌果 使用post发送数据 必须 设置 如下内容
// 修改了 发送给 服务器的 请求报文的 内容
// 如纯笑果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:
ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
// 发送
// post请求 发送的数据 写在 send方法中
// 格式 name=jack&age=18 字符串的格式
ajax.send('name=jack&age=998');
// 注册事件
ajax.onreadystatechange = function () {
if (ajax.readyState==4&&ajax.status==200) {
console.log(ajax.responseText);
}
}
❼ Ajax怎么用麻烦说的详细些
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 另外很多人对AJAX读音为阿甲克斯,正确读音应该为“ai jian ke si”(汉字拼音,其实应该是ai jai ke si ,但jai在汉字中没有此拼音) 主要包含了以下几种技术 Ajax(Asynchronous JavaScript + XML)的定义 基于web标准(standards-based presentation)XHTML+CSS的表示; 使用DOM(Document Object Model)进行动态显示及交互; 使用XML 和 XSLT 进行数据交换及相关操作; 使用XMLHttpRequest 进行异步数据查询、检索; 使用JavaScript 将所有的东西绑定在一起。英文参见Ajax的提出者Jesse James Garrett的原文,原文题目(Ajax: A New Approach to Web Applications)。 类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。 AJAX的应用使用支持以上技术的web浏览器作为运行平台。这些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、仔伍Konqueror及Safari。但是Opera不支持XSL格式对象,也不支持XSLT。 基础应用 创建XMLHttpRequest 方法如下 XMLHttpRequest 类首先由Internet Explorer以ActiveX对象引入,被称为XMLHTTP。 后来Mozilla﹑Netscape﹑Safari 和其他浏览器念掘或也提供了XMLHttpRequest类,不过它们创建散则XMLHttpRequest类的方法不同。 对于Internet Explorer浏览器: xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP.3.0"); //3.0或4.0, 5.0 xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP"); xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP"); 由于在不同Internet Explorer浏览器中XMLHTTP版本可能不一致,为了更好的兼容不同版本的Internet Explorer浏览器,因此我们需要根据不同版本的Internet Explorer浏览器来创建XMLHttpRequest类,上面代码就是根据不同的Internet Explorer浏览器创建XMLHttpRequest类的方法。 对于Mozilla﹑Netscape﹑Safari等浏览器 创建XMLHttpRequest 方法如下:xmlhttp_request = new XMLHttpRequest(); 如果服务器的响应没有XML mime-type header,某些Mozilla浏览器可能无法正常工作。 为了解决这个问题,如果服务器响应的header不是text/xml,可以调用其它方法修改该header。 xmlhttp_request = new XMLHttpRequest(); xmlhttp_request.overrideMimeType('text/xml'); 在实际应用中,为了兼容多种不同版本的浏览器,一般将创建XMLHttpRequest类的方法写成如下形式: try{ if( window.ActiveXObject ){ for( var i = 5; i; i-- ){ try{ if( i == 2 ){ xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" ); } else{ xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" ); xmlhttp_request.setRequestHeader("Content-Type","text/xml"); xmlhttp_request.setRequestHeader("Charset","gb2312"); } break;} catch(e){ xmlhttp_request = false; } } } else if( window.XMLHttpRequest ) { xmlhttp_request = new XMLHttpRequest(); if (xmlhttp_request.overrideMimeType) { xmlhttp_request.overrideMimeType('text/xml'); } } } catch(e){ xmlhttp_request = false; } 发送请求了 可以调用HTTP请求类的open()和send()方法,如下所示: xmlhttp_request.open('GET', URL, true); xmlhttp_request.send(null); open()的第一个参数是HTTP请求方式—GET,POST或任何服务器所支持的您想调用的方式。 按照HTTP规范,该参数要大写;否则,某些浏览器(如Firefox)可能无法处理请求。 第二个参数是请求页面的URL。 第三个参数设置请求是否为异步模式。如果是TRUE,JavaScript函数将继续执行,而不等待服务器响应。这就是"AJAX"中的"A"。 服务器的响应 这需要告诉HTTP请求对象用哪一个JavaScript函数处理这个响应。可以将对象的onreadystatechange属性设置为要使用的JavaScript的函数名,如下所示: xmlhttp_request.onreadystatechange =FunctionName; FunctionName是用JavaScript创建的函数名,注意不要写成FunctionName(),当然我们也可以直接将JavaScript代码创建在onreadystatechange之后,例如: xmlhttp_request.onreadystatechange = function(){ // JavaScript代码段 }; 首先要检查请求的状态。只有当一个完整的服务器响应已经收到了,函数才可以处理该响应。XMLHttpRequest 提供了readyState属性来对服务器响应进行判断。 readyState的取值如下: 0 (未初始化) 1 (正在装载) 2 (装载完毕) 3 (交互中) 4 (完成) 所以只有当readyState=4时,一个完整的服务器响应已经收到了,函数才可以处理该响应。具体代码如下: if (http_request.readyState == 4) { // 收到完整的服务器响应 } else { // 没有收到完整的服务器响应 } 当readyState=4时,一个完整的服务器响应已经收到了,接着,函数会检查HTTP服务器响应的状态值。完整的状态取值可参见W3C文档。当HTTP服务器响应的值为200时,表示状态正常。 处理从服务器得到的数据 有两种方式可以得到这些数据: (1) 以文本字符串的方式返回服务器的响应 (2) 以XMLDocument对象方式返回响应 http://ke..com/view/1641.htm 这里有详细介绍
❽ tp里的ajax到底怎么用
thinkphp中使耐神渣用ajax很简单.主要掌握的地方有三个.
第一.tp中ajax的url需要使用大U方法.比如:$.post("{:U('User/add')}")
瞎羡第二.控制器中返回结果得第一种方法.$this->error('失败','',true); 第三个参数为true.则发挥的是json数据.包含info.status.url三项.
第三.控制器中返回结果的第二种方法.$this->ajaxReturn(array('customKey1'=>'customValue1','customKey2'=>'customValue2','customKey3'=>'customValue3')).
掌握以上三点和ajax基本使用方法.那么在tp中使用ajax也就掌握了.简单的例子如下.伪代码,或许有错.
模板中:
1
2
3
4
5
6
7
8
9
10
11
<script>
$.post("{:U('User/add')",{uname:xiaoming,age:15},function(data){
//data接收返回数据
if(data.status == 1){
alert(data.info);
location.href = data.url;
}else{
alert('错误');
}
});
</script>
控制器中:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public function add(){
if(IS_AJAX){
$name = I('post.name','','trim');
$age = I('post.age','','trim');
if($name && $age){
//插入数据
$this->success('添加成功',U('User/index'),true);
}else{
$this->ajaxReturn(array(
'status' => 0,
'info' => '大爷,您没输入名字',
'url' => U('User/add')
));
}
}else{
昌悄return false;
}
}
大概就是这样子.至于剩下的$.ajax.$.getJson等等都是一样的道理