XMLHttpRequest responseType =“json”给出错误SYNTAX_ERR:DOM异常12

时间:2012-03-23 19:30:24

标签: javascript ajax xmlhttprequest

我无法将XHR responseType设置为“json”。如果我将它保留为空字符串xml.responseType = "";,它工作正常但是当我将其设置为“json”时,我收到控制台错误消息SYNTAX_ERR:DOM异常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 个答案:

答案 0 :(得分:27)

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

答案 1 :(得分:8)

WebKit中未实现JSON responseType。 http://groups.google.com/a/chromium.org/group/chromium-bugs/browse_thread/thread/8107e50e4207eb5a/a5d2c31247feae56?lnk=raot

更新2016-01-03: 正如可以预料的那样,WebKit在此期间实现了这一功能。