J'ai fonction XMLHttpRequest()
donnée ci-dessous
var searchFriendRequests = function (userid) {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://localhost:6344/api/Registeration/searchFriendrequests?userid=' + userid, false);
xhr.setRequestHeader("Content-Type", "text/xml");
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var data = xhr.responseText;
}
}
};
xhr.send(null);
}
où xhr.responseText
renvoie la valeur sous la forme
{
"$id": "1",
"ContentEncoding": null,
"ContentType": null,
"Data": [
{
"$id": "2",
"email": "[email protected]"
},
{
"$id": "3",
"email": "[email protected]"
}
],
"JsonRequestBehavior": 1,
"MaxJsonLength": null,
"RecursionLimit": null
}
Comment puis-je obtenir le champ Data
à partir de responseText
?
utilisez JSON.parse () , comme:
var data=xhr.responseText;
var jsonResponse = JSON.parse(data);
console.log(jsonResponse["Data"]);
Vous devez d'abord analyser responseText en JSON. Pour cela, vous devez utiliser JSON.parse () . Ensuite, vous pouvez y accéder avec la clé.
var json = JSON.parse(xhr.responseText);
var yourData = json.Data; // or json["Data"]
Pour obtenir simplement le courrier électronique ou tout autre champ de l'objet Data
, utilisez ce qui suit:
data.Data[0].email
Depuis quelque temps, vous pouvez utiliser:
xhr.responseJSON
sans aucune analyse nécessaire. J'espère que ça aide
devrait d'abord analyser la réponse à l'objet json, puis obtenir le champ de données de la réponse
var responseText = JSON.parse(xhr.responseText),
data = responseText.Data;
Lorsque vous faites votre demande ajax, vous pouvez fournir dataType
option :
dataType: 'json'
Pour une telle demande lorsque vous recevez une réponse:
Si
json
est spécifié, la réponse est analysée à l'aide dejQuery.parseJSON
avant d'être transmise, en tant qu'objet, au gestionnaire de réussite. L'objet JSON analysé est rendu disponible via la propriétéresponseJSON
de l'objetjqXHR
.
vous pouvez accéder à vos données comme:
var data = xhr.responseJSON
Exemple complet:
$ajax.({
dataType: 'json',
success: function( xhr ) {
var yourData = xhr.responseJSON;
console.log( yourData );
},
});