NetworkError: Échec de l'exécution de 'envoyer' sur 'XMLHttpRequest'
Je suis en train de faire un POST requête ajax à un serveur hébergé en local sur mon ordinateur portable mais je ne peux pas sembler obtenir des informations de retour. Lorsque je clique sur un bouton sur mon site (localhost), je peux voir le serveur de passer à l'arrière des renseignements exacts, mais sur l'extrémité avant, j'obtiens cette erreur:
erreur: NetworkError: Échec de l'exécution de 'envoyer' sur 'XMLHttpRequest': impossible de charger"http://comp-ip'.
var param = JSON.stringify({varA:"varA",varB:"varB"});
$.ajax({
type: "POST",
url: "http://comp-ip",
async: false,
data: param,
success: function(result, status, xhr){
alert(result + ": " + status);
},
error: function(xhr, status, err) {
alert(status + ": " + err);
}
});
Il semble être le déclenchement d'une erreur à chaque fois et pas de "réussite". Quelqu'un a une idée de ce qui est mal?
Edit: j'ai essayé d'envoyer un courrier normal demande sans AJAX et il me jette un 'undefined' erreur:
$(document).ready(function(){
var param = JSON.stringify({varA:"varA",varB:"varB"});
$("#btn").click(function(event){
$.post(
"http://ip",
param,
function(data) {
$('#container').html(data);
}
).fail(function(error) { alert(error.responseJSON) });
});
});
D'autres choses que j'ai essayé:
1) l'Évolution des navigateurs Safari (même chose, le serveur renvoie des informations, mais le site obtient une erreur)
2) Réglage de la async = vrai du faux. Pour une raison quelconque, quand je l'ai mis à true, le serveur ne répond pas à tous. Quand il est faux que le serveur répond.
OriginalL'auteur Moo33 | 2015-10-01
Vous devez vous connecter pour publier un commentaire.
J'ai eu ce problème, littéralement, il y a quelques minutes. Le problème est que vous devez définir
async:false
àasync:true
. Je ne sais pas exactement pourquoi cela fonctionne, je suppose parce que HTML5 est plus récente que XML.D'erreur est un peu différent sur ce site, mais je pense que c'est la même chose: La console JavaScript.journal des causes d'erreur: "Synchrone XMLHttpRequest sur le thread principal est obsolète..."
Mise à jour
Salut, je suis de retour avec quelques nouvelles et l'amélioration de l'information. La Croix-Origine se produit avec les ports ainsi que les domaines/IPs, et va probablement être mis en place dans la plupart des bons navigateurs. Si vous voulez savoir ce qui se passe, essayez de changer l'IP localhost ou vice-versa (si vous utilisez localhost). Gardez à l'esprit ce problème peut se produire lorsque vous utilisez des ports différents. Pour une solution rapide, assurez-vous que dans les en-têtes de quel que soit le serveur de back-end, c'est que vous êtes à mettre les Accès correct-en-tête de Contrôle
response.addHeader("Access-Control-Allow-Origin", "*");
.Code est dérivé de cette question
Vous avez reçu une erreur undefined ce qui signifie que l'url de la méthode post peut-être pas valide. Est le fichier js sur le serveur?
Ah oui, échec du chargement de ressource signifie certainement que vous avez la mauvaise url. Quel type de serveur que vous utilisez?
C'est un serveur java qui fonctionne sur mon ordi. Cependant, il semble être de retour le droit de l'information ce qui signifie que l'URL doit être correcte. J'ai trouvé une autre erreur jetant à partir de mon navigateur de la console qui me fait penser que c'est une croix de domaine en question. Il dit: Pas de "Access-Control-Allow-Origin' en-tête est présent sur la ressource demandée. Origine 'localhost' est donc pas autorisé à accéder. Ça n'a pas de sens pourquoi c'est la croix de domaine, bien que les deux sont en cours d'exécution à partir de mon ordinateur?
Pour répondre après un certain temps, l'emplacement de l'en-tête est différente. Ma conjecture est que vous utilisez les serveurs sur différents ports ou d'un hôte local sous-domaine. De toute façon, il est important de garder à l'esprit qu'un localhost:4000 est encore tout à fait différent de, par exemple, un localhost:80. Pour un ordinateur, il est possible pour un malveillant bénignes et serveur sur le même emplacement, juste parce que les emplacements de serveur sont différents. Pour des raisons de sécurité, cette fonction est activée. Il peut ne pas se produire sur une ancienne version de navigateur comme Netscape ou si vous utilisez curl.
OriginalL'auteur ytpillai
C'était une Croix de l'Origine du problème des Ressources (SCRO). Mon serveur a été de retourner les informations correctes pour moi, mais mon navigateur a refusé de l'accepter. Pour le fixer, j'ai dû ajouter 2 lignes sur mon serveur java (pas mon site) pour paramétrer le en-tête de réponse:
Cette erreur s'est produite here aussi,
OriginalL'auteur Moo33
Vous pouvez tester vos pages web avec google Chrome sur Windows comme ceci
OriginalL'auteur Daniel Georgiev