我已经在这里检查了大部分关于Firefox中不同响应类型的答案,但我的情况似乎有点不同,我已经尝试了所有修复程序。
我正在做的是提交一个来自via XMLHttpRequest并且响应在Chrome,Safari,Opera中正常工作,我得到一个json对象,但在FF中我得到完整的文档。
我已经尝试了
1) xhr.responseType = 'json';
2) xhr.overrideMimeType("application/json")
3) xhr.setRequestHeader("Content-type", "application/json");
4) xhr.setRequestHeader("Accept","application/json");
无法更改响应类型。 这是我的代码
function ajaxSubmit(data) {
xhr = new XMLHttpRequest();
var url = "https://xxx.domain.com/sss/signup/";
xhr.open("POST", url, true);
xhr.responseType = "json";
xhr.setRequestHeader("Content-type", "application/json");
//xhr.setRequestHeader("Accept","application/json");
var stringData = JSON.stringify(data);
//Handling response
xhr.onreadystatechange = function () {
if (xhr.status == 200 && xhr.readyState === XMLHttpRequest.DONE) {
var result = xhr.response;
window.location = result.url;
}
else if (xhr.status == 400 && xhr.readyState === XMLHttpRequest.DONE) {
var resErr = xhr.response;
showErr(resErr.error.fields);
}
else if (xhr.readyState === XMLHttpRequest.DONE) {
document.getElementById("errorContainer").innerHTML = xhr.status + xhr.response;
}
}
xhr.send(stringData);
}