You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/references/ajax.md
+18-2Lines changed: 18 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,8 @@ ajax.sendRequest({
22
22
| url | Url de l'action Ajax | Oui ||
23
23
| update | Si défini, mise à jour du DOM avec le résultat. (voir doc de la fonction `updateDom` plus bas) | Non ||
24
24
| updateMode | Méthode à utiliser pour la mise à jour du DOM (voir doc de la fonction `updateDom` plus bas) | Non | update |
25
-
| onBeforeSend |[Callback(s)](js-callbacks.md#définition-des-callbacks) lancé(s) avant l'envoi de la requête. `Function(options)`. Dans le callback peut passer `options.stop = false` pour annuler la requête. | Non ||
25
+
| onValidate |[Callback(s)](js-callbacks.md#définition-des-callbacks) lancé(s) avant toute préparation de la requête: avant la résolution de l'URL, avant le dispatch de l'événement `ec-crud-ajax-before-send` et avant le callback `onBeforeSend`. `Function(options)`. Dans le callback peut passer `options.stop = true` pour annuler la requête. Voir *Différence entre `onValidate` et `onBeforeSend`* plus bas | Non ||
26
+
| onBeforeSend |[Callback(s)](js-callbacks.md#définition-des-callbacks) lancé(s) avant l'envoi de la requête, après le dispatch de l'événement `ec-crud-ajax-before-send`. `Function(options)`. Dans le callback peut passer `options.stop = true` pour annuler la requête. Voir *Différence entre `onValidate` et `onBeforeSend`* plus bas | Non ||
26
27
| onSuccess |[Callback(s)](js-callbacks.md#définition-des-callbacks) lancé(s) en cas de succès (code de réponse HTTP 200-299). `Function(data, response)`. <ul><li>`data`: Donnée de la réponse. Voir option `responseDataType` pour le format attendu</li><li>`response`: Objet de type [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response)</li></ul> | Non ||
27
28
| onError |[Callback(s)](js-callbacks.md#définition-des-callbacks) lancé(s) en cas d'erreur (code de réponse HTTP ≠ 200-299 ou erreur avant la réponse). `Function(statusText, response)` <ul><li>`statusText`: [statusText](https://developer.mozilla.org/en-US/docs/Web/API/Response/statusText) de la réponse (si réponse). Sinon mesage d'erreur au format string</li><li>`response`: Objet de type [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) si réponse, nulm sinon</li></ul> | Non ||
28
29
| onComplete |[Callback(s)](js-callbacks.md#définition-des-callbacks) lancé(s) après les callbacks `onSuccess` ou `onError`. `Function(statusText, response)`. Voir options `onSuccess` et `onError` pour détails sur `statusText` et `response`| Non ||
@@ -34,14 +35,29 @@ ajax.sendRequest({
34
35
| cache | Utilise ou non le cache | Non | false |
35
36
| options | Tableau d'options de la fonction [Fetch](https://developer.mozilla.org/en-US/docs/Web/API/fetch)| Non | { } |
36
37
38
+
**Différence entre `onValidate` et `onBeforeSend` :**
39
+
40
+
Les deux callbacks reçoivent les options résolues et permettent d'annuler la requête avec `options.stop = true`,
41
+
mais ils ne sont pas lancés au même moment :
42
+
43
+
*`onValidate` est lancé avant toute préparation de la requête : avant la résolution de l'URL, avant la construction des
44
+
options de [Fetch](https://developer.mozilla.org/en-US/docs/Web/API/fetch), avant le dispatch de l'événement
45
+
`ec-crud-ajax-before-send` et avant le callback `onBeforeSend`. À utiliser pour décider **si** la requête doit avoir
46
+
lieu (demande de confirmation à l'utilisateur, validation métier...), ou pour modifier les options `url` et `query`.
47
+
Comme l'événement `ec-crud-ajax-before-send` n'est pas encore dispatché, une annulation à ce stade n'exécute aucun de
48
+
ses listeners.
49
+
*`onBeforeSend` est lancé quand la requête est prête, juste avant son envoi et après le dispatch de l'événement
50
+
`ec-crud-ajax-before-send`. À utiliser pour préparer l'envoi de la requête. À ce stade, l'URL est déjà résolue (voir
51
+
`options.urlResolved`) : modifier l'option `url` n'a donc plus d'effet.
52
+
37
53
**Promesses :**
38
54
39
55
La fonction `sendRequest` retourne une promesse.
40
56
* En cas de code de réponse HTTP 200-299, la promesse résout l'objet [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) représentant la réponse à la requête.
41
57
* En cas de code de réponse HTTP autre 200-299:
42
58
* Si l'option `successfulResponseRequired` est à `false`, alors la promesse résout l'objet [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) représentant la réponse à la requête.
43
59
* Sinon la promesse est rejetée.
44
-
* En cas d'annulation de la requête (par le callback`onBeforeSend` ou les événements `ec-crud-ajax` / `ec-crud-ajax-before-send`), la promesse résout une valeur nulle.
60
+
* En cas d'annulation de la requête (par les callbacks `onValidate` /`onBeforeSend` ou les événements `ec-crud-ajax` / `ec-crud-ajax-before-send`), la promesse résout une valeur nulle.
45
61
* En cas d'erreur lors de l'exécution de la requête, la promesse est rejetée.
46
62
* En cas d'erreur lors la lecture de la réponse, la promesse est rejetée.
47
63
* En cas d'erreur de configuration, la promesse est rejetée.
0 commit comments