2
0
mirror of https://github.com/tenrok/axios.git synced 2026-06-17 19:21:29 +03:00
Files
axios/docs/fr/pages/advanced/request-method-aliases.md
T
Pierluigi Lenoci f39203dcbe feat: add QUERY HTTP method support (#10802)
* feat: add QUERY HTTP method support

Add support for the HTTP QUERY method as defined in
draft-ietf-httpbis-safe-method-w-body. QUERY is a safe, idempotent
method like GET but carries a request body, making it suitable for
complex queries that cannot be expressed in a URL.

Changes:
- Add axios.query(url, data, config) and axios.queryForm() shorthands
- Register 'query' in default headers initialization
- Include 'query' in header cleanup during request dispatch
- Add 'QUERY' to Method type in TypeScript definitions (d.ts and d.cts)
- Add query/queryForm signatures to Axios class type definitions
- Add 'query' to HeadersDefaults interface
- Update unit and module typing tests

Closes #5465

Signed-off-by: Pierluigi Lenoci <pierluigilenoci@gmail.com>

* test: add thorough QUERY method tests

Add comprehensive tests for the QUERY HTTP method covering:
- Request method correctness (via mock adapter and real HTTP server)
- Request body support (QUERY accepts a body like POST/PUT/PATCH)
- Custom headers handling
- baseURL configuration with instances
- Content-Type auto-detection (application/json for objects)
- Instance method and defaults merging
- Generic request form axios({ method: 'query' })
- queryForm() multipart/form-data support
- Integration tests against a real HTTP server verifying the QUERY
  method string arrives correctly on the wire

Signed-off-by: Pierluigi Lenoci <pierluigilenoci@gmail.com>

* chore: updated docs with all translations

* chore: drop formquery method as this is probably not a real use case

* chore: remove un-needed file

---------

Signed-off-by: Pierluigi Lenoci <pierluigilenoci@gmail.com>
Co-authored-by: Jay <jasonsaayman@gmail.com>
2026-04-28 14:28:30 +02:00

6.1 KiB

Alias de requête

axios fournit un ensemble d'alias pour effectuer des requêtes HTTP. Ces alias sont des raccourcis pour effectuer des requêtes via la méthode request. Ils sont conçus pour être faciles à utiliser et offrir une façon plus pratique d'effectuer des requêtes.

axios s'efforce de suivre les RFC 7231 et RFC 5789 aussi fidèlement que possible. Les alias sont conçus pour être cohérents avec les méthodes HTTP définies dans ces RFC.

axios

axios peut être utilisé pour effectuer une requête HTTP en passant uniquement l'objet de configuration. L'objet de configuration complet est documenté ici

axios(url: string | AxiosRequestConfig, config?: AxiosRequestConfig);

Alias de méthode

Les alias suivants sont disponibles pour effectuer des requêtes :

request

La méthode request est la méthode principale pour effectuer des requêtes HTTP. Elle accepte un objet de configuration en argument et retourne une promise qui se résout vers l'objet de réponse. C'est une méthode générique pouvant être utilisée pour tout type de requête HTTP.

axios.request(config: AxiosRequestConfig<C>): AxiosResponse<R>;

get

La méthode get est utilisée pour effectuer une requête GET. Elle accepte une URL et un objet de configuration optionnel en arguments et retourne une promise qui se résout vers l'objet de réponse.

axios.get(url: string, config?: AxiosRequestConfig<C>): AxiosResponse<R>;

delete

La méthode delete est utilisée pour effectuer une requête DELETE. Elle accepte une URL et un objet de configuration optionnel en arguments et retourne une promise qui se résout vers l'objet de réponse.

axios.delete(url: string, config?: AxiosRequestConfig<C>): AxiosResponse<R>;

head

La méthode head est utilisée pour effectuer une requête HEAD. Elle accepte une URL et un objet de configuration optionnel en arguments et retourne une promise qui se résout vers l'objet de réponse.

axios.head(url: string, config?: AxiosRequestConfig<C>): AxiosResponse<R>;

options

La méthode options est utilisée pour effectuer une requête OPTIONS. Elle accepte une URL et un objet de configuration optionnel en arguments et retourne une promise qui se résout vers l'objet de réponse.

axios.options(url: string, config?: AxiosRequestConfig<C>): AxiosResponse<R>;

post

La méthode post est utilisée pour effectuer une requête POST. Elle accepte une URL, un objet de données optionnel et un objet de configuration optionnel en arguments et retourne une promise qui se résout vers l'objet de réponse.

axios.post(url: string, data?: D, config?: AxiosRequestConfig<C>): AxiosResponse<R>;

put

La méthode put est utilisée pour effectuer une requête PUT. Elle accepte une URL, un objet de données optionnel et un objet de configuration optionnel en arguments et retourne une promise qui se résout vers l'objet de réponse.

axios.put(url: string, data?: D, config?: AxiosRequestConfig<C>): AxiosResponse<R>;

patch

La méthode patch est utilisée pour effectuer une requête PATCH. Elle accepte une URL, un objet de données optionnel et un objet de configuration optionnel en arguments et retourne une promise qui se résout vers l'objet de réponse.

axios.patch(url: string, data?: D, config?: AxiosRequestConfig<C>): AxiosResponse<R>;

query

La méthode query est utilisée pour effectuer une requête QUERY, une méthode sûre et idempotente qui transporte un corps. Elle accepte une URL, un objet de données optionnel et un objet de configuration optionnel en arguments et retourne une promise qui se résout vers l'objet de réponse. Utilisez-la pour des opérations de type lecture dont les paramètres sont trop complexes ou trop sensibles pour figurer dans l'URL.

axios.query(url: string, data?: D, config?: AxiosRequestConfig<C>): AxiosResponse<R>;
// Envoyer un filtre de recherche complexe dans le corps de la requête
const { data } = await axios.query("/api/search", {
  selector: ["name", "email"],
  filter: { active: true, role: "admin" },
});

::: warning Spécification en cours d'élaboration La méthode QUERY est définie par un Internet-Draft de l'IETF et n'a pas encore été standardisée. La sémantique et le nom même de la méthode peuvent évoluer avant la publication finale, et la prise en charge par les serveurs, proxys et CDN est inégale. Vérifiez que votre pile accepte QUERY de bout en bout avant de vous en servir en production. :::

Méthodes raccourcies pour les données de formulaire

Ces méthodes sont équivalentes à leurs homologues ci-dessus, mais prédéfinissent le Content-Type à multipart/form-data. Elles constituent la façon recommandée d'envoyer des fichiers ou de soumettre des formulaires HTML.

postForm

axios.postForm(url: string, data?: D, config?: AxiosRequestConfig<C>): AxiosResponse<R>;
// Envoyer un fichier depuis un input file du navigateur
await axios.postForm("/api/upload", {
  file: document.querySelector("#fileInput").files[0],
  description: "Profile photo",
});

putForm

axios.putForm(url: string, data?: D, config?: AxiosRequestConfig<C>): AxiosResponse<R>;
// Remplacer une ressource avec des données de formulaire
await axios.putForm("/api/users/1/avatar", {
  avatar: document.querySelector("#avatarInput").files[0],
});

patchForm

axios.patchForm(url: string, data?: D, config?: AxiosRequestConfig<C>): AxiosResponse<R>;
// Mettre à jour des champs spécifiques avec des données de formulaire
await axios.patchForm("/api/users/1", {
  displayName: "New Name",
  avatar: document.querySelector("#avatarInput").files[0],
});

::: tip postForm, putForm et patchForm acceptent les mêmes types de données que leurs méthodes de base — objets simples, FormData, FileList et HTMLFormElement. Consultez Envoi de fichiers pour plus d'exemples. :::