为什么不只使用 JSON 来返回 HTML 呢?
我通常做的是像这样设置我返回的 JSON 对象:
{
//s=status, d=data
"s":0, //0 means success, other numbers are for different errors
"d":{ /* Other JSON object or string here */ }
}
所以,在你的情况下,你会做这样的事情(伪):
if (StuffIsValid()) {
ResponseWrite('{"s":0,"d":"<html>html code here</html>"}');
} else {
ResponseWrite('{"s":1,"d":{"errlist":["err1","err2"]}}');
}
当然,您希望使用内置 JSON 库作为您选择的服务器端语言,而不是使用字符串。
然后,在您的 jQuerysuccess
回调中,我会检查 s 的值。
$.ajax({
url: 'url',
dataType: 'json',
success: function(data) {
if (data) {
//We have a JSON object
if (data.s === 0) {
//Success!
//Do stuff with data.d as a string
} else if (data.s === 1) {
//Failed validation
//Do stuff with data.d as an object
} else {
//How did this happen?
}
} else {
//Uh oh, no object, user must have been logged out (or something)
}
});
如果用户必须登录才能访问您发布到的页面,这将特别有用,因为您可以发现返回的数据不是 JSON 对象这一事实。