jQuery ajaxSetup beforeSend ne s’exécutant pas dans IE8

Mon projet utilise jQuery 1.4.2. J’ai quelques informations de sécurité que j’ajoute à mes en-têtes AJAX … Pour ce faire, utilisez $ .ajaxSetup () et définissez une fonction beforeSend.

$(document).ready(function (e) { $.ajaxSetup({ global: true, beforeSend: function (jqXHR, settings) { var verificationToken = 'some encrypted ssortingng'; jqXHR.setRequestHeader("X-Request-Verification-Token", verificationToken); } }); }) 

Si je comprends bien, cela devrait alors s’exécuter chaque fois que j’appelle $ .ajax (), non? Cela fonctionne très bien dans Chrome, Firefox, IE9, etc., mais parfois pas dans IE7 / 8.

Voici où je l’appelle:

 $.ajax({ type: "POST", async: true, data: 'somedata', url: "/some/url", success: function (data) { alert("success"); }, error: function (data) { alert("error"); } }); 

J’ai trouvé une solution de contournement, consistant à append le beforeSend directement à l’appel $ .ajax () (ci-dessous), mais je souhaite vraiment le faire globalement, plutôt que de devoir l’append à de nombreux emplacements dans le code. .

 $.ajax({ type: "POST", async: true, data: 'somedata', url: "/some/url", success: function (data) { alert("success"); }, error: function (data) { alert("error"); } beforeSend: function (jqXHR, settings) { var verificationToken = 'some encrypted ssortingng'; jqXHR.setRequestHeader("X-Request-Verification-Token", verificationToken); } }); 

Des indices?

Merci! Neil

Ok, en l’absence de toute autre réponse, je déclare par la présente qu’il s’agit d’un bogue dans JQuery 1.4.x. La solution consiste à effectuer une mise à niveau vers une version ultérieure de JQuery, ce qui n’est malheureusement pas possible pour moi.

Si quelqu’un a une meilleure réponse / correction, je supprimerai volontiers celle-ci et marquerai leur réponse comme correcte.