Ce serait le meilleur si vous avez utilisé la méthode POST lors de l'envoi des données.
var msgSender = new ActiveXObject("Microsoft.XMLHTTP");
msgSender.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
msgSender.setRequestHeader("Encoding", "Windows-1257")
msgSender.open("POST", "http://yourderver/page" ,true);
msgSender.onreadystatechange = function(){...};
var msg = "your very long message goes here";
//preparing post data
var strToSend = "someotherarg=somevalue" + username;
strToSend+= "&msg=" + msg;
strToSend = escape(strToSend);
msgSender.send(strToSend);
La solution est encore plus facile, si vous utilisez jQuery - méthode il suffit d'appeler $.post()
: http://docs.jquery.com/Ajax/jQuery.post
EDIT: Cependant, cela ne fonctionnera pas inter-domaines, sauf si vous spécifiez 'Access-Control' les en-têtes sur votre serveur et Donc, une autre solution est d'inclure un IFRAME caché dans votre page (la page est sur votre serveur) qui contient un formulaire et vous appelez Submit() de cette page. former pour POSTER les données.
iframe caché? et comment les données iraient-elles à iframe si la requête est trop longue? de toute façon, ce serait 2 requêtes HTTP à chaque fois ... – vsync
Si le iframe vient de votre domaine, vous pouvez accéder à son DOM en utilisant javascript! 'document.getElementById (" yourframe "). document.forms [0] .submit()' etc! – naivists
Je sais, mais comme je l'ai déjà dit, les données sont cross-domaine. Ça y est. iframe trick ne va pas aider un peu .. – vsync