我可以获得 2 个响应标头来处理。看到底。
问题:
如果我得到 JSON 响应而不是需要执行postValidation
函数来处理 JSON,但如果它是 html 则不执行。我可以解决这个检查 html 标记以停止执行,但寻找任何干净的方法来检查返回的响应是有效的 JSON 并在 AJAX 调用中停止函数执行。
getValidationErrors总是返回 NULL。不知道为什么。如果你能告诉我有什么问题,请。
$.ajax({
url: url,
type: 'POST',
data: viewData,
//dataType: "json",
cache: false,
complete: postValidation,
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.log("error :"+XMLHttpRequest.responseText);
}
/* ,
success: function (data) {
$("#status").html('name = ' + data.name + ', age = ' + data.age);
}*/
});
function postValidation(request) {
clearValidationErrors();
var text = request.responseText;
var errorsObject = getValidationErrors(text);
//var errorsObject = JSON.parse(request.responseText);
};
var getValidationErrors = function(data) {
if (typeof data === "object") {
alert("1");
return data;
}
else {
if (data.indexOf("/* {") === 0) {
alert("2");
return eval("( " + data.substring(2, data.length - 2) + " )");
} else {
alert("3");
return null;
}
}
};
请求 1:响应标头
Content-Type application/json;charset=UTF-8
{ "fieldErrors": {"name":["You must enter your name"],"age":["Only people ages 13 to 19 may take this quiz"]}}
请求 2:响应标头
Content-Type text/html;charset=UTF-8
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>