在 WebAPI 中,假设我返回一个包含在 HTTP 响应中的字符串:
return Request.CreateResponse(HttpStatusCode.BadRequest, "Line1 \r\n Line2");
从 jQuery 调用此操作时,响应文本会在返回之前进行处理。所以在xhr中,我得到了这样的东西:
function success(xhr) {
alert(xhr.responseText); // alerts ""Line1 \\r\\n Line2""
}
换句话说,字符串被双引号括起来,特殊字符被转义,以便它们出现在输出中(实际警报是“Line1 \r\n Line2”,因此不保留换行符,而是编码并显示在响应文本)。
我可以通过删除引号并替换客户端上的换行符来解决这个问题,如下所示:
var responseText = xhr.responseText.substr(1, xhr.responseText - 2)
.replace('\\r', '\r').replace('\\n', '\n');
但是有没有办法告诉 WebAPI 如何格式化字符串响应?例如,不要将它们用双引号括起来并转换转义字符?