Maison  >  Article  >  interface Web  >  Explication détaillée de l'utilisation des fonctions get, post, ajax et getJSON de Jquery

Explication détaillée de l'utilisation des fonctions get, post, ajax et getJSON de Jquery

php中世界最好的语言
php中世界最好的语言original
2018-04-25 16:28:081775parcourir

Cette fois, je vais vous apporter une explication détaillée de l'utilisation des fonctions get, post, ajax et getJSON de Jquery. Quelles sont les précautions lors de l'utilisation des fonctions get, post, ajax et getJSON de Jquery. Voici des cas pratiques.

a une valeur de référence. Les amis qui en ont besoin peuvent se référer à

1 $.get(url,[data],[callback])

Description : url est l'adresse de la demande, data est la liste des données demandées, le rappel est la

fonction de rappel une fois la demande réussie. Cette fonction accepte deux paramètres, le premier est. renvoyé par le serveur Data, le deuxième paramètre est l'état du serveur, qui est un paramètre facultatif.

Parmi eux, le format des données renvoyées par le serveur est en fait un format de chaîne, pas le format de données json que nous souhaitons. Il est cité ici juste à titre de comparaison et d'illustration

$.get("data. .php", $("#firstName.val()"),function(data){$("#getResponse").html(data); }//Les données renvoyées sont de type chaîne);

Deuxièmement, $.post(url,[data],[callback],[type])

Explication : Cette fonction a des paramètres similaires à $.get (), avec plus de paramètres Il existe un paramètre de type, type est le

type de données demandé, qui peut être html, xml, json et d'autres types. Si nous définissons ce paramètre sur : json, alors le format renvoyé. sera au format json. S'il n'est pas défini, tout comme le format renvoyé par $.get(), ce sont toutes des chaînes $.post("data.php",$("#firstName.val()). "),function(data){$( "#postResponse").html(data.name);},"json"//Le type de données obtenues est défini, donc le format de données obtenu est de type json);

3. $.ajax(opiton)

Explication : $.ajax() est une fonction puissante qui peut contrôler ajax avec précision si vous en avez besoin. explication détaillée, veuillez vous référer aux informations pertinentes

$.ajax({url: "ajax/ajax_selectPicType.aspx",data:{Full:"fu"},type: "POST",dataType:'json',success :CallBack,error:function(er){ BackErr(er);}});

Quatre, $.getJSON(url,[data],[callback])

$ .getJSON("data.php",$("#firstName.val()"),function(jsonData){$("#getJSONResponse").html(jsonData.id) ;}//Pas besoin de définir, obtenez-le directement Le type de données est json, vous devez donc utiliser la méthode jsonData.id lors de l'appel);

Quand Ajax rencontre jQuery Il y a de plus en plus de méthodes basées sur AJAX les applications, et pour les développeurs front-end, ils doivent traiter directement avec la requête HTTP sous-jacente. Ce n'est pas une chose agréable. Puisque jQuery encapsule

JavaScript, la question de l'application AJAX doit avoir été prise en compte. En effet, si vous utilisez jQuery pour écrire en AJAX, ce sera N fois plus pratique que de l'écrire directement en JS. (Je me demande si je vais perdre mes connaissances en JS après avoir utilisé jQuery pendant une longue période...) On suppose que tout le monde est déjà familier avec la syntaxe jQuery, faisons donc un résumé de certaines applications d'ajax.

Charger la page statique

load( url, [data], [callback] ); Map) (paramètre facultatif) données clé/valeur envoyées au serveur

callback (Callback) (paramètre facultatif) fonction de rappel lorsque la demande est terminée (n'a pas besoin d'aboutir)
la méthode load() peut facilement charger contenu de la page statique dans l'objet jQuery spécifié. $('#ajax-p').load('data.html');
De cette façon, le contenu de data.html sera chargé dans l'objet DOM avec l'ID ajax-p. Vous pouvez même implémenter l'opération Ajax de chargement d'une partie du contenu en spécifiant l'ID, tel que :
$('#ajax-p').load('data.html#my-section');

Implémenter les méthodes GET et POST

get( url, [data], [callback] ) url (String) Adresse URL pour envoyer la requête.

données (Carte)(Paramètre facultatif) Les données à envoyer au serveur, exprimées sous forme de paires clé/valeur, seront ajoutées à l'URL de la requête en tant que QueryString

callback (Callback) (paramètre facultatif) fonction de rappel lors du chargement est réussi (Cette méthode n'est appelée que lorsque l'état de retour de la réponse est succès)


Il s'agit évidemment d'une fonction qui implémente spécifiquement la méthode GET, et elle est assez simple à utiliser

Fonction de chargement de script basée sur les événements : getScript()
$.get('login.php', { id : 'Robin', password: '123456', gate : 'index' }, function(data, status) { //data为返回对象,status为请求的状态 alert(data); //此时假设服务器脚本会返回一段文字"你好,Robin!",那么浏览器就会弹出对话框显示该段文字 
alert(status); //结果为success, error等等,但这里是成功时才能运行的函数 });
post( url, [data], [callback], [type] ) url (String) 发送请求的URL地址.
data (Map)(可选参数) 要发送给服务器的数据,以 Key/value 的键值对形式表示
callback (Callback) (可选参数) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)
type (String) (可选参数) 请求数据的类型,xml,text,json等
同样是jQuery提供的一个简便函数,其实用法$.post('regsiter.php', { id:'Robin', password: '123456', type:'user' },function(data, status) { alert(data); }, "json");

getScript( url, [callback] ) url (String) Adresse du fichier JS à charger

callback (Fonction) (facultatif) après le chargement réussi de la fonction de rappel

getScript() 函数可以远程载入JavaScript脚本并且执行。这个函数可以跨 域载入JS文件(神奇……?!)。这个函数的意义是巨大 的,它可以很大程度的缩减页面初次载入的代码量,因为你可以根据用户的交互来载入相应的JS文件,而不必在页面初始化的时候全部载入。

$.getScript('ajaxEvent.js', function() { alert("Scripts Loaded!"); //载入ajaxEvent.js,并且在成功载入后显示对话框提示。 
});

构建数据通讯的桥梁:getJSON()

getJSON(url,[data],[callback]) url (String) 发送请求地址

data (Map) (可选) 待发送 Key/value 参数

callback (Function) (可选) 载入成功时回调函数。

JSON 是一种理想的数据传输格式,它能够很好的融合与JavaScript或其他宿主语 言,并且可以被JS直接使用。使用JSON相比传统的通过 GET、POST直接发送”裸体”数据,在结构上更为合理,也更为安全。至于jQuery的getJSON()函数,只是设置了JSON参数的 ajax()函数的一个简化版本。

这个函数也是可以跨域使用的,相比get()、post()有一定优势。另外这个函数可以通过把请求url写 成”myurl?callback=X”这种格式,让程序执行回调函数X。

$.getJSON('feed.php',{ request: images, id: 001, size: large }, function(json) { alert(json.images[0].link); 
//此处json就是远程传回的json对象,假设其格式如下: 
//{'images' : [ 
// {link: images/001.jpg, x :100, y : 100}, 
// {link: images/002.jpg, x : 200, y 200:} 
//]}; 
} );

更底层的ajax()函数

虽然get()和post()函数非常简洁易用,但是对于更复杂的一些设计需求还是无法实现,比如在ajax发送的不同时段做出不同的动作等。jQuery提供一个更为具体的函数:ajax()。

ajax( options ) ajax()提供了一大票参数,所以可以实现相当复杂的功能。

你 可以指定xml、script、html、json作为其数据类型,可以为beforeSend、error、sucess、complete等状态设置 处理函数,众多其它参数也可以订完完全全定义用户的Ajax体验。下面的例子中,我们用ajax()来调用一个XML文档:

$.ajax({ 
url: 'doc.xml', 
type: 'GET', 
dataType: 'xml', 
timeout: 1000, 
error: function(){ 
alert('Error loading XML document'); 
}, 
success: function(xml){ 
alert(xml); 
//此处xml就是XML的jQuery对象了,你可以用find()、next()或XPath等方法在里面寻找节点,和用jQuery操作HTML对象没有区别 
}});

进一步了解AJAX事件

前面讨论的一些方法都有自己的事件处理机制,从页面整体来说,都只能说是局部函数。jQuery提供了AJAX全局函数的定义,以满足特殊的需求。下面是jQuery提供的所有函数(按照触发顺序排列如下):

ajaxStart (全局事件) 开始新的Ajax请求,并且此时没有其他ajax请求正在进行 beforeSend (局部事件) 当一个Ajax请求开始时触发。如果需要,你可以在这里设置XMLHttpRequest对象 ajaxSend (全局事件) 请求开始前触发的全局事件 success (局部事件) 请求成功时触发。即服务器没有返回错误,返回的数据也没有错误 ajaxSuccess 全局事件全局的请求成功 error (局部事件) 仅当发生错误时触发。

你无法同时执行success和error两个回调函数 ajaxError 全局事件全局的发生错误时触发 complete (局部事件) 不管你请求成功还是失败,即便是同步请求,你都能在请求完成时触发这个事件 ajaxComplete 全局事件全局的请求完成时触发 ajaxStop (全局事件) 当没有Ajax正在进行中的时候,触发局部事件在之前的函数中都有介绍,我们主要来看看全局事件。对某个对象进行全局事件监听,那么全局中的AJAX动作,都会对其产生影响。比如,当页面在进行AJAX操作时,ID为”loading”的p就显示出来:

$("#loading").ajaxStart(function(){ $(this).show(); });

全局事件也可以帮助你编写全局的错误相应和成功相应,而不需要为每个AJAX请求独立设置。有必要指出,全局事件的参数是很有用的。除了 ajaxStart、ajaxOptions,其他事件均有event, XMLHttpRequest, ajaxOptions三个参数。第一个参数即事件本身;第二个是XHR对象;第三个是你传递的ajax参数对象。在一个对象里显示全局的AJAX情况:

$("#msg").beforeSend(function(e,xhr,o) { $(this).html("正在请求"+o.url); }).ajaxSuccess(function(e,xhr,o) { $(this).html(o.url+"请求成功"); }).ajaxError(function(e,xhr,o) { $(this).html(o.url+"请求失败");});

很显然,第三个参数也可以帮助你传递你在AJAX事件里加入的自定义参数。
在单个AJAX请求时,你可以将global的值设为false,以将此请求独立于AJAX的全局事件。

$.ajax({ url: "request.php", global: false, 
// 禁用全局Ajax事件. });

如果你想为全局AJAX设置参数,你会用上ajaxSetup()函数。

例如,将所有AJAX请求都传递到request.php,;禁用全局方法;强制用POST方法传递:

$.ajaxSetup({ url: "request.php", global: false, type: "POST"});

一些你不得不知道的方法

写AJAX肯定离不开从页面获取相应的值。在这里简单列举一些方法:

val() val()函数可以返回表单组建的值,例如任何种类input的值。

配合选择符操作,你可以轻易获取选项组、输入框、按钮等元素的值。

$("input[name='info']:text").val();//返回名字为info的文本框的值$("input[name='pass']:password").val();//返回名字为pass的密码框的值
$("input[name='save']:radio").val();//返回名字为save的单选项的值//以此类推serialize() serialize函数可以帮你把表单对象的所有值都转换为字符串序列。

如果你要写GET格式的请求,这个就非常方便了。

serializeArray() 和serialize()类似,只不过它返回的是JSON对象。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

怎样局部更新Razor页面

ajax如何做出页面局部跳转功能

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn