0

我在 web api 中有一个控制器操作,它返回字符串令牌,如下所示。但是,问题是每当服务器端响应字符串中出现“/”时,在客户端我总是得到“/”而不是“\”被添加到原始字符串。我怎样才能摆脱它?

在此处输入图像描述

public string GetTrackProfile()
 {
    string token="0Q2l7m4dAekjCt/yIxk0txzyZAxjZMYZq6+OAXHPNorrel7hez2vnkLe61Mf2ZLL";
    return token;
 }

客户端响应

0Q2l7m4dAekjCt/yIxk0txzyZAxjZMYZq6+OAXHPNorrel7hez2vnkLe61Mf2ZLL

4

1 回答 1

3

如果此字符串是 HTTP 标头的一部分,那么您应该知道,根据RFC 2616 规范 /,它被视为分隔符并且必须正确转义(这就是 Web API 通过在它前面添加 来为您所做的\):

许多 HTTP/1.1 标头字段值由由 LWS 或特殊字符分隔的单词组成。这些特殊字符必须在要在参数值中使用的带引号的字符串中(如第 3.6 节中所定义)。

   token          = 1*<any CHAR except CTLs or separators>
   separators     = "(" | ")" | "<" | ">" | "@"
                  | "," | ";" | ":" | "\" | <">
                  | "/" | "[" | "]" | "?" | "="
                  | "{" | "}" | SP | HT

更新:

根据评论,这个字符串是 JSON 序列化响应的一部分。它被正确编码。让我们看下面的例子:

var json = {"d":"a\/b"};
alert(json.d);​

当您执行此代码时,将显示正确的字符串 - a/b。所以这是一个完全正常的行为。

于 2012-07-01T19:47:53.610 回答