getResponseHeader n’est pas une fonction

J’ai besoin d’obtenir une valeur d’une autre page. Mais je reçois cette erreur avec le code suivant. Comment puis-je le réparer?

$(document).ready(function() { $("[name='submit']").click(function() { $.ajax({ type: "POST", data: $(".form-signup").serialize(), url: "external.asp", success: function(output) { alert(output.getResponseHeader("Content-Length")); }, error: function(output) { $('.sysMsg').html(output); } }); }); }); 

Tout d’abord, votre object de parameters n’est pas bien formé, la fonction de success n’est pas terminée.

Edit: Il semble que vous utilisiez jQuery 1.3.x. Si c’est le cas, la fonction $.ajax renvoie elle-même l’object XHR:

 $(document).ready(function() { $("[name='submit']").click(function() { var xhr = $.ajax({ type: "POST", data: $(".form-signup").serialize(), url: "external.asp", success: function(output, status) { alert(xhr.getResponseHeader("Content-Length")); }, error: function(output) { $('.sysMsg').html(output); } }); }); }); 

Pour les versions de jQuery 1.4+:

Ensuite, lorsque le rappel à la success renvoie ses trois arguments exécutés ( success(data, textStatus, XMLHttpRequest) ), vous devez appeler le getResponseHeader sur l’object XmlHttpRequest , le troisième argument:

 $(document).ready(function() { $("[name='submit']").click(function() { $.ajax({ type: "POST", data: $(".form-signup").serialize(), url: "external.asp", success: function(output, status, xhr) { alert(xhr.getResponseHeader("Content-Length")); }, error: function(output) { $('.sysMsg').html(output); } }); }); }); 

Est-ce un appel interdomaine? Vous entrez peut-être dans un tout nouveau monde de douleur? ( Partage de ressources inter-domaines GET: “a refusé de recevoir l’en-tête non sécurisé” etag “” de Response ) lorsque vous le faites.