J'ai du mal à définir le type de réponse XHR sur "json". Cela fonctionne bien si je lui laisse une chaîne vide xml.responseType = "";
mais lorsque je le définis sur "json", j'obtiens le message d'erreur de la console SYNTAX_ERR: exception DOM 12.
Le fichier .js:
var xml = new XMLHttpRequest();
xml.open("GET", "test.php", true);
xml.responseType = "json";
xml.send();
Le fichier .php:
<?php
$foo = "{\"key1\":\"val1\", \"key2\":\"val2\"}";
echo $foo;
?>
Vous ne savez pas ce qui se passe .. Des idées?
responseType
propriété pour XMLHttpRequest
objet est ajoutée dans sa nouvelle variante XMLHttpRequest Level 2 et qui est incluse dans HTML 5
, je ne suis pas sûr que tous les navigateurs prennent en charge cette méthode, il est donc possible que vous utilisiez un navigateur qui n'implémente pas cette méthode
au lieu d'utiliser responseType
, vous pouvez utiliser le code suivant pour obtenir les données au format souhaité
var xml = new XMLHttpRequest();
xml.open("GET", "test.php", true);
xml.onreadystatechange = function() {
if (xml.readyState != 4) { return; }
var serverResponse = JSON.parse(xml.responseText);
};
xml.send(null);
Le type de réponse JSON n'est pas implémenté dans le WebKit. http://groups.google.com/a/chromium.org/group/chromium-bugs/browse_thread/thread/8107e50e4207eb5a/a5d2c31247feae56?lnk=raot
Mise à jour 2016-01-03: Comme on pouvait s'y attendre, WebKit a implémenté cette fonctionnalité entre-temps.