return Request.CreateResponse(HttpStatusCode.BadRequest, "Line1 \r\n Line2");
当使用jQuery调用此操作时,响应文本在返回之前被处理。所以在xhr中,我得到类似这样的内容:
当从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如何格式化字符串响应?例如,不要将它们包装在双引号中并转换转义字符?
return Request.CreateResponse(HttpStatusCode.BadRequest, "Line1 \r\n Line2");
- Ben Foster