2009-06-30 4 views
1

J'essaie de POST une requête http en utilisant ajax, mais obtenir une réponse du serveur apache en utilisant modsec_audit que: "requête POST doit avoir un en-tête Content-Length." Je ne veux pas désactiver cela dans modsec_audit.Comment forcer ou ajouter la longueur du contenu pour les requêtes POST de type ajax dans Firefox?

Cela se produit uniquement dans Firefox, et pas IE. En outre, je suis passé à l'utilisation d'un POST plutôt que d'un GET pour empêcher IE de mettre en cache mes résultats.

Ceci est une version simplifiée du code que j'utilise pour la requête, je n'utilise aucun framework javascript. Comment puis-je forcer ou ajouter la longueur du contenu pour les requêtes POST de type ajax dans Firefox?

Répondre

3
xhr.setRequestHeader("Content-Length", "0"); 

serait ma meilleure estimation.

BTW, si vous voulez arrêter la mise en cache dans Internet Explorer, il suffit d'ajouter un nombre aléatoire sur la fin, comme dans:

var RequestString = 'someserverscript.cfm' + SearchString + '&random=' + Math.random(); 
+0

l'homme, c'était trop facile; J'aurais dû m'en rendre compte moi-même. setRequestHeader() ne fonctionne pas correctement, sauf si vous remplacez null par '' dans send(). – Jayson

0

Essayez d'envoyer réellement quelque chose au lieu de null (xhr.send (null);).

Questions connexes