【发布时间】:2013-04-01 13:00:33
【问题描述】:
我正在从我的 javascript 到 aspx 页面的 webmethod 进行 ajax 调用。由于某种原因,我返回的字符串用双引号括起来。我尝试将它们剥离,但由于某种原因,替换只替换了第一个。在服务器端没有包裹字符串的引号。
var req = new XMLHttpRequest();
var url = document.URL;
// strip pound sign off the end
var poundIndex = url.lastIndexOf('#');
if (poundIndex === url.length - 1) {
url = url.substring(0, poundIndex);
}
url += '/SignOn';
req.open('post', url, false);
req.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
req.send();
var serverResponse = req.responseText.replace('"', '');
这是我在服务器上做的:
Return System.Configuration.ConfigurationManager.AppSettings("url").ToString + "?token=" + HttpContext.Current.Session("Token").ToString() + "&aid=ca"
有什么想法吗?
【问题讨论】:
-
控制台自动显示字符串值的引号,所以字符串本身实际上只有单引号。
-
您不应该使用
System.Configuration.ConfigurationManager.AppSettings("url").ToString() +而不是System.Configuration.ConfigurationManager.AppSettings("url").ToString +吗? -
@Bart 是嵌套的,所以双引号包含在字符串中。
-
@MarkSchultheiss 它是 VB.NET。只要括号是空的,它就不会在意。
-
@Yatrix 开发人员控制台会自动将字符串值用引号括起来,因此您看到的外部引号确实不存在。内引号应该在那里,因为 JSON 字符串总是在引号中。请参阅json.org -> 字符串。使用
JSON.parse(req.responseText);解析字符串。如果您仍然想摆脱所有引号,请尝试req.responseText.replace(/\"/g, "");
标签: javascript asp.net ajax response