Comment puis-je extraire le contenu de la réponse (seul) sans les en-têtes? à l'aide de Jquery
Comment puis-je extraire le contenu de la réponse (seul) sans les en-têtes?
$.ajax({
type: "GET",
url: "http://myRestservice.domain.com",
success: function(data, textStatus, request){
alert(data); //This prints the response with the header.
},
error: function(){
alert('fail');
}
});
Le code ci-dessus imprime
HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 12 Jul 2013 20:24:06 GMT
Content-Length: 232
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">{"UserID":3,"RoleID":8,"ActivityID":3,"RoleIName":"E",,"Duration":10,"ValidationMsg":"Passed"}</string>
J'ai besoin d'extraire la valeur de ValidationMsg. C'est un reste d'appel de service.
Comment puis-je obtenir la réponse sans en-tête informations?
C'est que JSON à l'intérieur de XML?
et puis
On dirait que vous êtes de retour JSON à l'intérieur d'un paquet XML...je n'ai pas vu ça avant. Vous avez le contrôle sur le service où vous pouvez le changer pour revenir JSON?
Ce n'est pas un problème avec XML à l'intérieur de JSON. Le problème est que je reçois les informations d'en-tête trop que je ne veux pas
var obj = $.parseJSON($.parseXML(data).find('string').text())
et puis
obj.ValidationMsg
On dirait que vous êtes de retour JSON à l'intérieur d'un paquet XML...je n'ai pas vu ça avant. Vous avez le contrôle sur le service où vous pouvez le changer pour revenir JSON?
Ce n'est pas un problème avec XML à l'intérieur de JSON. Le problème est que je reçois les informations d'en-tête trop que je ne veux pas
OriginalL'auteur hop | 2013-07-12
Vous devez vous connecter pour publier un commentaire.
Je pense que votre serveur est la prestation d'un type de contenu que vous n'attendiez pas.
Étapes pour résoudre:
text/plain
outext/html
.application/json
.dataType
comme "json". Normalement $.ajax devine de façon appropriée; toutefois, depuis votre serveur est de prétendre que c'est du texte, de la sorte, vous êtes des en-têtes dans votre réponse.DONC, dit - "Vous pouvez attribuer votre générosité à 18 heures".
OriginalL'auteur Parris
Je soupçonne qu'il ya quelque chose de mal avec votre code serveur si vous obtenez de retour des en-têtes dans la données paramètre. Le code que vous avez fourni fonctionne très bien pour moi la connexion à un serveur de test de retour valide XML - la données paramètre finit contenant un document XML de l'objet.
Je vous suggérons d'essayer d'ouvrir l'url dans un navigateur et de voir de quoi il en retourne. Aussi, si le XML est généré par programmation sur le serveur, vous pouvez essayer de créer seulement un statique fichier XML à la place et voir si cela fonctionne mieux.
Une fois que vous avez le serveur de renvoi valide XML, vous pouvez extraire la chaîne de contenu de l'objet XML dans le données paramètre comme ceci:
Ensuite, vous pouvez analyser le JSON à partir d'une chaîne de contenu avec:
Et enfin l'extrait de la validationMessage clé avec:
C'est en supposant que le JSON dans cet élément de chaîne est json valide. Cependant, dans l'exemple que vous avez donné, il y a une double virgule entre "RoleIName" et "Durée", ce qui le rend invalide.
Si vous ne pouvez pas fixer que sur le côté serveur, vous pourriez peut-être fixer sur le côté client avec une simple chaîne de caractères à remplacer comme ceci:
Ce n'est pas particulièrement sûre chose à faire en général, mais si vous n'êtes pas inquiet d'avoir des virgules dans le contenu json qui pourrait être endommagé par un tel appel, il ne devrait pas être un problème.
Ensemble, la finale succès fonction devrait ressembler à quelque chose comme ceci:
Voici un codepen lien démontrant le travail de script: http://codepen.io/anon/pen/LeDlg
OriginalL'auteur James Holderness
Mon idée est d'essayer en utilisant contentType dans votre appel ajax:
et puis essayez d'attraper l'objet json
contentType
est le type que vous envoyez.dataType
est le type retourné.Bonne info. Je ne savait pas que
OriginalL'auteur carlosherrera