Ajouter un en-tête HTTP personnalisé à toutes les requêtes jQuery AJAX
Point de clarification: je n'ai pas de problème en ajoutant un en-tête personnalisé à mon appel ajax jQuery, je veux avoir mon en-tête personnalisé ajouté à tous les appels ajax automatiquement.
Si vous jetez un oeil à jquery $.ajax en-têtes http personnalisés problème (pas à ma question), vous verrez un très bon exemple de comment le code fonctionne si mis en œuvre par la main pour chaque appel ajax.
Je voudrais remplacer beforeSend pour tous les appels ajax jQuery. Selon le jQuery documentation, je peux le faire en utilisant jQuery.ajaxSetup()mais il y a un avertissement disant que vous ne devriez probablement pas, peut provoquer un comportement inattendu, ce genre de choses. Pour global des rappels de ce genre, ils suggèrent d'utiliser .ajaxStart(). .ajaxStart() ressemble beaucoup, sauf qu'il n'exposez pas le XHR donc, je peux ajouter l'en-tête.
Devrais-je ajouter beforeSend à l'aide de ajaxSetup? Est-il un moyen d'accéder à la XHR de ajaxStart? D'autres options?
source d'informationauteur Peter | 2013-12-03
Vous devez vous connecter pour publier un commentaire.
Un pré-filtre est un moyen facile de réaliser ceci:
de cette façon, toutes les demandes obtenez l'en-tête personnalisé, à moins que la demande spécifique remplace la beforeSend option.
Note toutefois que vous pouvez atteindre le même objectif à l'aide de ajaxSetup. la seule raison que l'avertissement est là c'est parce que l'aide il aura une incidence sur toutes les requêtes ajax (tout comme ma méthode), qui peut entraîner des résultats indésirables si une demande n'a pas besoin de cette option. Je vous suggère de simplement en utilisant ajaxSetup, qu'est ce que c'est là, après tout.
Vous pouvez utiliser de l'ajax événement mondial ajaxSend()
Démo: Violon