ajax实例(ajax实例里面的函数)

大家好,感谢邀请,今天来为大家分享一下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

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(“?”,

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实例的信息别忘了在本站进行查找哦。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享