避免在经典的asp中转义objXmlHttp json字符串

时间:2017-11-21 15:20:45

标签: asp-classic

我有一个经典的asp页面,可以从Web服务中检索编码的令牌,如下所示:

objXmlHttp.Open "POST", "http://some_web_service", False
objXmlHttp.SetRequestHeader "Content-Type", "application/json"
objXmlHttp.Send something
If objXmlHttp.Status = 200 Then
    response.write ("objXmlHttp.ResponseText:"&objXmlHttp.ResponseText)

我在我的objXmlHttp.ResponseText斜杠中看到这样的转义

"...rVw1s\/Qn30..." (see "\" and "/" after "s").

当我通过查询字符串(Response.Redirect)将此令牌发送到另一个Web应用程序的asp.net mvc控制器时,我收到了它,反斜杠也被转义了,就像这样

"...rVw1s\\/Qn30...", that breaks.

我不想替换,如果可能的话,不是在asp(发送令牌)而不是在asp.net mvc(接收令牌)中。

是否可以避免在经典asp中的objXmlHttp中接收转义斜杠?

或许我做错了什么或错过了什么......

1 个答案:

答案 0 :(得分:1)

感谢@Lankymart提供有关Json包装要发送的数据的建议:

以这种方式工作:

    在ASP发件人中执行我的令牌的Server.URLEncode
  1. (没有这个没有用......)*

  2. 在一个简单的对象中使用aspJSON序列化编码的令牌(格式如{“token”:“myXYZtoken”}),将序列化对象发送到我的MVC操作方法。

  3. 在使用Newtonsoft JsonConvert进入的MVC Action接收器方法中 动态对象

  4. 以正确的格式化方式在对象中找到“token”属性。

  5. * N.B:只有没有包装在Json对象中的原始令牌的Server.URLEncode不起作用。