La méthode ajax() charge les données distantes via des requêtes HTTP.
Cette méthode est l'implémentation AJAX sous-jacente de jQuery. Pour des implémentations de haut niveau simples et faciles à utiliser, voir $.get, $.post, etc. $.ajax() renvoie l'objet XMLHttpRequest qu'il a créé. Dans la plupart des cas, vous n'aurez pas besoin de manipuler cette fonction directement, sauf si vous devez manipuler des options moins couramment utilisées pour plus de flexibilité.
Dans le cas le plus simple, $.ajax() peut être utilisé directement sans aucun paramètre.
Remarque : Toutes les options peuvent être définies globalement via la fonction $.ajaxSetup().
Grammaire
jQuery.ajax([settings])
Paramètres | paramètres | Facultatif. Une collection de paires clé-valeur utilisées pour configurer les requêtes Ajax.
La valeur par défaut de n'importe quelle option peut être définie via $.ajaxSetup(). <🎜> |
---|
jQuery.get()
使用一个HTTP GET 请求从服务器加载数据。
jQuery.get(url [,data] [,success(data,textStatus,jqXHR)] [dtaType])
url 一个包含发送请求的URL
data 发送给服务器的字符串后键值对
success() 当请求成功时回调的函数
dataType 从服务器返回的预期数据。
用法:
$.get("test.cgi", { name: "John", time: "2pm" }, function(data){ alert("Data Loaded: " + data); });
jQuery.getJSON()
使用一个HTTP GET 请求服务器加载JSON 编码的数据。
jQuery.getJSON(url [,data] [,success(data,textStatus,jqXHR)])
url 一个包含发送请求的URL
data 发送给服务器的字符串后键值对
success() 当请求成功时回调的函数
jQuery.getScript()
使用一个HTTP GET请求从服务器加载并执行一个JavaScript文件。
jQuery.getScript(url[success(script,textStatus,jqXHR)])
url 一个包含发送请求的URL
data 发送给服务器的字符串后键值对
用法:
$.getScript("ajax/test.js", function(data, textStatus, jqxhr) { console.log(data); //data returned console.log(textStatus); //success console.log(jqxhr.status); //200 console.log('Load was performed.'); });
jQuery.post([settings])
使用一个HTTP POST请求从服务器加载数据。
jQuery.post(url[,data][,success(data,textStatus,jqXHR)][,dataType])
url 一个包含发送请求的URL
data 发送给服务器的字符串后键值对
success() 当请求成功时回调的函数
用法:
$.post("test.php", { name: "John", time: "2pm" }, function(data) { alert("Data Loaded: " + data); });
.load()
从服务器载入数据并且将返回的HTML代码并插入至匹配的元素中。
.load(url[,data][,complete(responseText,textStatus,XMLHttpRequest)])
url 一个包含发送请求的URL
data 发送给服务器的字符串后键值对
complete 当请求成功时回调的函数
用法:
$('#result').load('ajax/test.html #container');
jQuery.ajax()
执行一个异步的HTTP(ajax)的请求。
参数:
url 类型: Sting 发送请求的地址(默认当前页面)
type 类型:Sting (默认为GET) 请求方式(”POST“或”GET“)
timeout 类型:Number 设置请求超时时间(毫秒),此设置默认覆盖全局。
async 类型:Boolean 默认设置(true)默认设置下所有请求均为一步请求,如果需要同步请求,设置为false。
beforeSend 类型:function 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。XMLHttpRequest 对象是唯一的参数。
cache 类型:Boolean 默认为(true) 设置为false 将不会从浏览器缓存中加载请求信息。
complete 类型:Function 请求完成后回调函数,(请求成功或失败时均调用)参数: XMLHttpRequest 对象,成功信息字符串。function ( XMLHttpRequest, textStatus) {this; // the options for this ajax request}
contentType 类型为:String 发送信息至服务器时内容编码类型,默认值适合大多数应用场合。
data 类型:Object String 发送到服务器的数据。将自动转换为请求字符串格式,GET请求附加在URL后
dataType 类型:String 预期服务器返回的数据类型, ”xml“返回XML文档。”html“返回纯文本信息,包含script 元素。”script“返回纯文本JavaScript 代码,不会自动缓存 结果。”json“返回JSON 数组。”jsonp“JSONP格式。
error 类型:function 请求失败时将调用此方法。
global 类型:Boolean 是否触发全局AJAX事件。默认为(true) 设置为false 将不会触发全局ajax 事件,可用于控制不同的AJAX事件。
ifModified 类型:Boolean 默认为false 仅在服务器数据改变时获取新数据。
processData 类型:Boolean 默认为(true)默认情况下,发送的数据发送的数据将被转换为对象(技术上讲并非字符串) 以配合默认内容类型 "application/x-www-form- urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。
success 类型:Function 请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态。
$(document).ready(function() { jQuery("#clearCac").click(function() { jQuery.ajax({ url: "/Handle/Do.aspx", type: "post", data: { id: '0' }, dataType: "json", success: function(msg) { alert(msg); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); }, complete: function(XMLHttpRequest, textStatus) { this; // 调用本次AJAX请求时传递的options参数 } }); }); });
Le premier paramètre XMLHttpRequest renvoyé par l'événement d'erreur contient des informations utiles :
XMLHttpRequest.readyState :
Code d'état
0 - (Non initialisé) La méthode send() n'a pas encore été appelée
1 - (Chargement) La méthode send() a été appelée et la requête est en cours d'envoi
2 - (Chargement terminé) La méthode send() a été exécutée et tout le contenu de la réponse a été reçu
3 - (Interactif) Analyse du contenu de la réponse
4 - (Complet) L'analyse du contenu de la réponse est terminée et peut être appelée sur le client
XMLHttpRequest.status :
1xx-Invite d'informations
Ces codes d'état indiquent des réponses provisoires. Le client doit être prêt à recevoir une ou plusieurs réponses 1xx avant de recevoir une réponse régulière.
100-continuez.
Protocole 101-Switch.
2xx-Succès
Ce type de code d'état indique que le serveur a accepté avec succès la demande du client.
200-OK. La demande du client a réussi.
201-Créé.
202-Accepté.
203-Informations ne faisant pas autorité.
204-Pas de contenu.
205-Réinitialiser le contenu.
206-Partie du contenu.
3xx-Redirection
Le navigateur client doit effectuer des actions supplémentaires pour répondre à la demande. Par exemple, le navigateur devra peut-être demander une page différente sur le serveur ou répéter la demande via un serveur proxy.
301 - L'objet a été définitivement déplacé, c'est-à-dire définitivement redirigé.
302 - L'objet a été temporairement déplacé.
304-Non modifié.
307 - Redirection temporaire.
Erreur client 4xx
Une erreur s'est produite et il semble y avoir un problème avec le client. Par exemple, le client demande une page qui n'existe pas et le client ne fournit pas d'informations d'authentification valides. 400 - Mauvaise demande.
401 - Accès refusé. IIS définit de nombreuses erreurs 401 différentes, qui indiquent des causes d'erreur plus spécifiques. Ces codes d'erreur spécifiques apparaissent dans le navigateur, mais pas dans les journaux IIS :
401.1 - La connexion a échoué.
401.2 - La configuration du serveur a provoqué un échec de connexion.
401.3 - Non autorisé en raison d'une restriction ACL sur la ressource.
401.4 - L'autorisation du filtre a échoué.
L'autorisation de l'application 401.5-ISAPI/CGI a échoué.
401.7 – L'accès est refusé par la politique d'autorisation URL sur le serveur Web. Ce code d'erreur est spécifique à IIS6.0.
403 - Interdit : IIS définit un certain nombre d'erreurs 403 différentes, qui indiquent des causes plus spécifiques de l'erreur :
403.1 - Accès à l'exécution interdit.
403.2 - Accès en lecture interdit.
403.3 - Accès en écriture interdit.
403.4 - SSL requis.
403.5 - SSL128 requis.
403.6 - Adresse IP rejetée.
403.7 - Certificat client requis.
403.8 - Accès au site refusé.
403.9-Trop d'utilisateurs.
403.10 - Configuration invalide.
403.11-Changement de mot de passe.
403.12 - Accès à la table de mappage refusé.
403.13 - Certificat client révoqué.
403.14 - Inscription dans l'annuaire refusée.
403.15 - Autorisation d'accès client dépassée.
403.16 - Le certificat client n'est pas fiable ou n'est pas valide.
403.17 - Le certificat client a expiré ou n'est pas encore valide.
403.18 - L'URL demandée ne peut pas être exécutée dans le pool d'applications actuel. Ce code d'erreur est spécifique à IIS6.0.
403.19 - CGI ne peut pas être exécuté pour les clients de ce pool d'applications. Ce code d'erreur est spécifique à IIS6.0.
403.20-La connexion au passeport a échoué. Ce code d'erreur est spécifique à IIS6.0.
404-Introuvable.
404.0-(Aucun) – Fichier ou répertoire introuvable.
404.1 - Le site Web n'est pas accessible sur le port demandé.
404.2 - Cette requête est bloquée par la stratégie de verrouillage d'extension des services Web.
La politique de mappage 404.3-MIME bloque cette demande.
405-Le verbe HTTP utilisé pour accéder à cette page n'est pas autorisé (méthode non autorisée)
406 - Le navigateur client n'accepte pas le type MIME de la page demandée.
407 - Authentification proxy requise.
412 - La condition préalable a échoué.
413 – L’entité de requête est trop grande.
414 - Demande d'URI trop longue.
415 – Type de média non pris en charge.
416 – La plage demandée ne peut pas être satisfaite.
417 – L’exécution a échoué.
423 – Erreur verrouillée.
Erreur de serveur 5xx
Le serveur n'a pas pu terminer la demande car il a rencontré une erreur.
500 - Erreur de serveur interne.
500.12 - L'application est en train de redémarrer sur le serveur Web.
500.13 - Le serveur Web est trop occupé.
500.15 - Les demandes directes à Global.asa ne sont pas autorisées.
500.16 – Informations d’autorisation UNC incorrectes. Ce code d'erreur est spécifique à IIS6.0.
500.18 – Le magasin d'autorisations d'URL ne peut pas être ouvert. Ce code d'erreur est spécifique à IIS6.0.
500.100 - Erreur ASP interne.
501 : la valeur d'en-tête spécifie une configuration non implémentée.
502 - Le serveur Web a reçu une réponse non valide alors qu'il agissait en tant que passerelle ou serveur proxy.
L'application 502.1-CGI a expiré.
Erreur d'application 502.2-CGI. candidature.
503-Service indisponible. Ce code d'erreur est spécifique à IIS6.0.
504-Délai d'expiration de la passerelle.
505 - La version HTTP n'est pas prise en charge.
jQuery.param()
Crée un tableau, un objet simple ou une représentation sérialisée d'un objet jQuery à utiliser avec les chaînes de requête URL ou les requêtes Ajax.
jQuery.param(obj)
obj Un tableau pour la sérialisation, un objet normal ou un objet jQuery.
jQuery.param( obj, traditionnel)
obj Un tableau pour la sérialisation, un objet normal ou un objet jQuery.
traditionnel
Une valeur booléenne indiquant si une sérialisation « superficielle » traditionnelle est effectuée.
$.param({ a : [2,3,4] }) // "a[]=2&a[]=3&a[]=4"
$.param({ a : { b:1,c:2 }, d : [3,4,{ e:5 }] }) // "a[b]=1&a[c]=2&d[]=3&d []=4&d[2][e]=5"