XMLHttpRequest responseType = "json" выдает ошибку SYNTAX_ERR: DOM Exception 12 - PullRequest
22 голосов
/ 23 марта 2012

У меня проблемы с установкой XHR responseType в значение "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;
?>

Не уверен, что происходит .. Есть идеи?

Ответы [ 2 ]

28 голосов
/ 23 марта 2012

responseType свойство для XMLHttpRequest объекта добавлено в его новом варианте XMLHttpRequest Уровень 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);
8 голосов
/ 23 марта 2012

JSON responseType не реализован в WebKit.http://groups.google.com/a/chromium.org/group/chromium-bugs/browse_thread/thread/8107e50e4207eb5a/a5d2c31247feae56?lnk=raot

Обновление 2016-01-03: Как и следовало ожидать, WebKit уже реализовал эту функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...