OBTENEZ de l'Ajax retourne le code html en réponse à la place de l'objet json
J'ai un ajax obtenir une demande comme ci-dessous. Je fais une requête GET server.js dans openshift à l'aide de nodejs express. Cependant, je reçois html contenu dans la méthode de réponse à la place de l'objet json. Les deux demandes sont pour le même domaine.Le nœud de modules que j'utilise sont moongojs,mongodb et bfils.
$.ajax({
type: "GET",
url: "http://abc-favspot.rhcloud.com",
contentType: "application/json",
data: JSON.stringify(currLocation),
dataType: "text",
success: function(response){
callback(response);
},
error: function( error ){
console.log( "ERROR:", error );
}
});
Mon server.js fichier le code suivant
self.routes['getData'] = function(req, res){
console.log("gat method");
self.db.collection('location').find().toArray(function(err, names) {
res.header("Content-Type:","application/json");
console.log("success get");
res.send(names);
});
};
Essayez de simplifier la demande en premier. Ne font pas un db d'appel, simple retour de certains JSON dans votre
btw, si
server.js
. Cela permet de vous assurer que vous appelez la bonne route.btw, si
callback
prend réponse en tant que paramètre, vous n'avez pas à l'envelopper dans une fonction, c'est à dire : success: callback
OriginalL'auteur misthacoder | 2014-04-22
Vous devez vous connecter pour publier un commentaire.
res.send(names)
n'est pas JSON, Vous devez stringify les données à l'aide deJSON.stringify
.Essayer de tester avant de la DB appeler pour vérifier si cela fonctionne.
res.send( JSON.stringify( {testData:'test'} ) )
Modifier
Tel que discuté dans les commentaires, veuillez vérifier que votre demande est acheminée à la bonne route que vous avez déclaré.
Ne
console.log("gat method");
l'affichage de la fenêtre de terminal?Modifié la réponse au point de certains problèmes avec votre code serveur.
J'ai essayé le stringify, mais cela n'a pas fonctionné. j'ai toujours l'html de la réponse
ce que le html que vous obtenez? êtes-vous certain que votre demande est acheminée à la bonne route?
Je suis l'original de la page html que l'utilisateur utilise pour la requête get
OriginalL'auteur Jason J. Nathan
dans votre
$.ajax
appel de la méthode de changement de ceà
reportez-vous à la documentation pour plus de détails
https://api.jquery.com/jQuery.ajax/
et s'il vous plaît vérifier si les données que vous recevez est un json valide, vérifier avec http://jsonlint.com/
OriginalL'auteur Mp de la Vega
Vous pouvez utiliser
res.json
à envoyer en réponse JSON au lieu deres.send
De cette méthode a également mis
Content-Type
commeapplication/json
OriginalL'auteur Fizer Khan