我无法将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;
?>
不确定发生了什么......有什么想法吗?
答案 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在此期间实现了这一功能。