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.