Подтвердить что ты не робот

XMLHttpRequest responseType = "json", дающий ошибку SYNTAX_ERR: исключение DOM 12

У меня возникли проблемы с настройкой типа ответа XHR на "json". Он отлично работает, если я оставил ему пустую строку xml.responseType = "";, но когда я установил ее в "json", я получаю сообщение об ошибке консоли SYNTAX_ERR: DOM Exception 12.

Файл .js:

var xml = new XMLHttpRequest();
xml.open("GET", "test.php", true);
xml.responseType = "json";
xml.send();

Файл .php:

<?php
$foo = "{\"key1\":\"val1\", \"key2\":\"val2\"}";
echo $foo;
?>

Не уверен, что происходит. Любые идеи?

4b9b3361

Ответ 1

responseType свойство для объекта XMLHttpRequest добавляется в его новый вариант XMLHttpRequest Level 2 и который включен в HTML 5, я Я не уверен, что все браузеры поддерживают этот метод, поэтому возможно, что вы используете браузер, который не реализует этот метод.

вместо responseType вы можете использовать следующий код для получения данных в нужном формате

 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);