在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如何格式化字符串响应呢?例如,不将它们括在双引号中并转换转义字符?
https://stackoverflow.com/questions/13128013
复制相似问题