大家好,感谢邀请,今天来为大家分享一下ajax实例的问题,以及和ajax实例里面的函数的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
随着互联网技术的不断发展,前端开发已经逐渐成为了一个热门领域。在众多前端技术中,AJAX(Asynchronous JavaScript and XML)技术以其强大的功能,在数据交互方面发挥着至关重要的作用。本文将围绕AJAX实例,从基础知识、应用场景、实例解析等方面进行深入浅出的讲解,帮助大家更好地理解和掌握这一技术。
一、AJAX简介
1. 定义
AJAX是一种基于JavaScript的技术,它允许网页在不重新加载整个页面的情况下,与服务器进行异步通信。简单来说,就是用户在浏览网页时,可以与服务器进行实时交互,而无需刷新整个页面。
2. 优点
* 异步交互:用户无需等待页面刷新,即可与服务器进行交互,提高了用户体验。
* 局部更新:只需更新页面的一部分内容,减少了数据传输量,提高了页面加载速度。
* 跨平台:AJAX技术适用于各种浏览器,具有良好的兼容性。
二、AJAX应用场景
1. 表单验证
在用户提交表单时,可以通过AJAX技术实时验证表单数据,避免用户在提交后才发现错误。
2. 轮询
轮询是一种常见的AJAX应用场景,通过定时向服务器发送请求,获取最新的数据。
3. 实时搜索
在搜索框中输入关键词时,可以通过AJAX技术实时显示搜索结果,提高用户体验。
4. 动态加载内容
例如,在新闻网站中,可以通过AJAX技术动态加载最新的新闻内容。
三、AJAX实例解析
以下是一个简单的AJAX实例,演示了如何使用JavaScript和XMLHttpRequest对象实现异步数据交互。
1. HTML部分
“`html
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(“?”,
function(data){
$.each(data.items, function(i,item){
$(“<img/>”).attr(“src”, item.media.m).appendTo(“#images”);
if( i== 3) return false;
});
});
希望对你有用。
jQuery.ajax()的参数
options(可选)ObjectAJAX请求设置。所有选项都是可选的。 asyncBoolean
(默认: true)默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
beforeSend(XHR)Function
发送请求前可修改 XMLHttpRequest对象的函数,如添加自定义 HTTP头。XMLHttpRequest对象是唯一的参数。这是一个 Ajax事件。如果返回false可以取消本次ajax请求。
function(XMLHttpRequest){ this;//调用本次AJAX请求时传递的options参数}cacheBoolean(默认: true,dataType为script和jsonp时默认为false) jQuery 1.2新功能,设置为 false将不缓存此页面。
complete(XHR, TS)Function
请求完成后回调函数(请求成功或失败之后均调用)。参数: XMLHttpRequest对象和一个描述成功请求类型的字符串。 Ajax事件。
function(XMLHttpRequest, textStatus){ this;//调用本次AJAX请求时传递的options参数}contentTypeString(默认: application/x-www-form-urlencoded)发送信息至服务器时内容编码类型。默认值适合大多数情况。如果你明确地传递了一个content-type给$.ajax()那么他必定会发送给服务器(即使没有数据要发送)
contextObject
这个对象用于设置Ajax相关回调函数的上下文。也就是说,让回调函数内this指向这个对象(如果不设定这个参数,那么this就指向调用本次AJAX请求时传递的options参数)。比如指定一个DOM元素作为context参数,这样就设置了success回调函数的上下文为这个DOM元素。就像这样:
$.ajax({ url: test.html, context: document.body, success: function(){$(this).addClass(done);}});
dataObject,String
发送到服务器的数据。将自动转换为请求字符串格式。GET请求中将附加在 URL后。查看 processData选项说明以禁止此自动转换。必须为 Key/Value格式。如果为数组,jQuery将自动为不同值对应同一个名称。如{foo:[bar1, bar2]}转换为'&foo=bar1&foo=bar2'。
dataFilterFunction
给Ajax返回的原始数据的进行预处理的函数。提供data和type两个参数:data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。
function(data, type){//对Ajax返回的原始数据进行预处理 return data//返回处理后的数据}dataTypeString预期服务器返回的数据类型。如果不指定,jQuery将自动根据 HTTP包 MIME信息来智能判断,比如XML MIME类型就被识别为XML。在1.4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:
xml:返回 XML文档,可用 jQuery处理。
html:返回纯文本 HTML信息;包含的script标签会在插入dom时执行。
script:返回纯文本 JavaScript代码。不会自动缓存结果。除非设置了cache参数。'''注意:'''在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)
json:返回 JSON数据。
jsonp: JSONP格式。使用 JSONP形式调用函数时,如 myurl?callback=? jQuery将自动替换?为正确的函数名,以执行回调函数。
text:返回纯文本字符串
errorFunction
(默认:自动判断(xml或 html))请求失败时调用此函数。有以下三个参数:XMLHttpRequest对象、错误信息、(可选)捕获的异常对象。如果发生了错误,错误信息(第二个参数)除了得到null之外,还可能是timeout, error, notmodified和 parsererror。Ajax事件。
function(XMLHttpRequest, textStatus, errorThrown){//通常 textStatus和 errorThrown之中//只有一个会包含信息 this;//调用本次AJAX请求时传递的options参数}globalBoolean(默认: true)是否触发全局 AJAX事件。设置为 false将不会触发全局 AJAX事件,如 ajaxStart或 ajaxStop可用于控制不同的 Ajax事件。
ifModifiedBoolean
(默认: false)仅在服务器数据改变时获取新数据。使用 HTTP包 Last-Modified头信息判断。在jQuery 1.4中,他也会检查服务器指定的'etag'来确定数据没有被修改过。
jsonpString在一个jsonp请求中重写回调函数的名字。这个值用来替代在callback=?这种GET或POST请求中URL参数里的callback部分,比如{jsonp:'onJsonPLoad'}会导致将onJsonPLoad=?传给服务器。
jsonpCallbackString为jsonp请求指定一个回调函数名。这个值将用来取代jQuery自动生成的随机函数名。这主要用来让jQuery生成度独特的函数名,这样管理请求更容易,也能方便地提供回调函数和错误处理。你也可以在想让浏览器缓存GET请求的时候,指定这个回调函数名。
passwordString
用于响应HTTP访问认证请求的密码
processDataBoolean
(默认: true)默认情况下,通过data选项传递进来的数据,如果是一个对象(技术上讲只要不是字符串),都会处理转化成一个查询字符串,以配合默认内容类型 application/x-www-form-urlencoded。如果要发送 DOM树信息或其它不希望转换的信息,请设置为 false。
scriptCharsetString
只有当请求时dataType为jsonp或script,并且type是GET才会用于强制修改charset。通常只在本地和远程的内容编码不同时使用。
successFunction
请求成功后的回调函数。参数:由服务器返回,并根据dataType参数进行处理后的数据;描述状态的字符串。 Ajax事件。
function(data, textStatus){// data可能是 xmlDoc, jsonObj, html, text,等等… this;//调用本次AJAX请求时传递的options参数}
traditionalBoolean
如果你想要用传统的方式来序列化数据,那么就设置为true。请参考工具分类下面的jQuery.param方法。
timeoutNumber
设置请求超时时间(毫秒)。此设置将覆盖全局设置。
typeString
(默认: GET)请求方式(POST或 GET),默认为 GET。注意:其它 HTTP请求方法,如 PUT和 DELETE也可以使用,但仅部分浏览器支持。
urlString
(默认:当前页地址)发送请求的地址。
usernameString
用于响应HTTP访问认证请求的用户名
xhrFunction
需要返回一个XMLHttpRequest对象。默认在IE下是ActiveXObject而其他情况下是XMLHttpRequest。用于重写或者提供一个增强的XMLHttpRequest对象。这个参数在jQuery 1.3以前不可用。描述:加载并执行一个 JS文件。
jQuery代码:$.ajax({ type: GET, url: test.js, dataType: script});
描述:
保存数据到服务器,成功时显示信息。
jQuery代码:$.ajax({ type: POST, url: some.php, data: name=John&location=Boston, success: function(msg){ alert( Data Saved:+ msg);}});
描述:
装入一个 HTML网页最新版本。
jQuery代码:$.ajax({ url: test.html, cache: false, success: function(html){$(#results).append(html);}});
描述:
同步加载数据。发送请求时锁住浏览器。需要锁定用户交互操作时使用同步方式。
jQuery代码: var html=$.ajax({ url: some.php, async: false}).responseText;
描述:
发送 XML数据至服务器。设置 processData选项为 false,防止自动转换数据格式。
jQuery代码:
var xmlDocument= [create xml document];$.ajax({ url: page.php, processData: false, data: xmlDocument, success: handleResponse});
jQuery post实例代码:
$.post(test.php,{name:name,pwd:pwd},function(msg){
alert(msg);
})
test.php里面用$_POST[name]和$_POST[pwd]接收参数.
$.post第一个参数是url,{}这里里面的是参数名称和值之间用:非开,多个值用,分开,最后一个是返回的函数msg就是返回的结果。根据自己的需要返回不用的数据。
$.get和post一样,php接收的话改成$_GET[name]和$_GET[pwd]
ajax请求原理
望采纳
一、Ajax原理是什么
AJAX全称(Async Javascript and XML),即异步的JavaScript和XML
是一种创建交互式网页应用的网页开发技术,可以在不重新加载整个网页的情况下,与服务器交换数据,并且更新部分网页
Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用JavaScript来操作DOM而更新页面
流程图如下:
校长想找班主任汇报工作,就委托秘书去叫班主任自己就接着做其他事情,直到秘书告诉他班主任已经到了,最后班主任跟领导汇报工作
Ajax请求数据流程与“校长想找班主任汇报一下工作”类似,上述秘书就相当于XMLHttpRequest对象,校长相当于浏览器,响应数据相当于班主任
浏览器可以发送HTTP请求后,接着做其他事情,等收到XHR返回来的数据再进行操作
二、实现过程
实现Ajax异步交互需要服务器逻辑进行配合,需要完成以下步骤:
建 Ajax的核心对象 XMLHttpRequest对象
通过 XMLHttpRequest对象的 open()方法与服务端建立连接
构建请求所需的数据内容,并通过XMLHttpRequest对象的 send()方法发送给服务器端
XMLHttpRequest对象提供的 onreadystatechange事件监听服务器端你的通信状态
接受并处理服务端向客户端响应的数据结果将处理结果更新到 HTML页面中
2.1创建XMLHttpRequest对象
通过XMLHttpRequest()构造函数用于初始化一个 XMLHttpRequest实例对象
const xhr= new XMLHttpRequest();
1
2.2与服务器建立连接
通过 XMLHttpRequest对象的 open()方法与服务器建立连接
xhr.open(method, url, [async][, user][, password])
1
参数说明:
method:表示当前的请求方式,常见的有GET、POST
url:服务端地址
async:布尔值,表示是否异步执行操作,默认为true
user:可选的用户名用于认证用途;默认为null
password:可选的密码用于认证用途,默认为null
2.3给服务端发送数据
通过 XMLHttpRequest对象的 send()方法,将客户端页面的数据发送给服务端
xhr.send([body])
1
body:在 XHR请求中要发送的数据体,如果不传递数据则为 null如果使用GET请求发送数据的时候,需要注意如下:
将请求数据添加到open()方法中的url地址中
发送请求数据中的send()方法中参数设置为null
2.4绑定onreadystatechange事件
onreadystatechange事件用于监听服务器端的通信状态,主要监听的属性为XMLHttpRequest.readyState,
关于XMLHttpRequest.readyState属性有五个状态,如下图显示:
只要readyState属性值一变化,就会触发一次readystatechange事件
XMLHttpRequest.responseText属性用于接收服务器端的响应结果
举个例子:
const request= new XMLHttpRequest()
request.onreadystatechange= function(e){
if(request.readyState=== 4){//整个请求过程完毕
if(request.status>= 200&& request.status<= 300){
console.log(request.responseText)//服务端返回的结果
}else if(request.status>=400){
console.log(“错误信息:”+ request.status)
}
}
}
request.open('POST','
request.send()
三、封装
通过上面对XMLHttpRequest对象的了解,下面来封装一个简单的ajax请求
//封装一个ajax请求
function ajax(options){
//创建XMLHttpRequest对象
const xhr= new XMLHttpRequest()
//初始化参数的内容
options= options||{}
options.type=(options.type||'GET').toUpperCase()
options.dataType= options.dataType||'json'
const params= options.data
//发送请求
if(options.type==='GET'){
xhr.open('GET', options.url+'?'+ params, true)
xhr.send(null)
} else if(options.type==='POST'){
xhr.open('POST', options.url, true)
xhr.send(params)
//接收请求
xhr.onreadystatechange= function(){
if(xhr.readyState=== 4){
let status= xhr.status
if(status>= 200&& status< 300){
options.success&& options.success(xhr.responseText, xhr.responseXML)
} else{
options.fail&& options.fail(status)
}
}
}
}
使用方式如下:
ajax({
type:'post',
dataType:'json',
data:{},
url:'
success: function(text,xml){//请求成功后的回调函数
console.log(text)
},
fail: function(status){请求失败后的回调函数
console.log(status)
}
})
ajax实例的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于ajax实例里面的函数、ajax实例的信息别忘了在本站进行查找哦。




