Yat*_*rix 10 javascript asp.net ajax response
我正在从我的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('"', '');
Run Code Online (Sandbox Code Playgroud)
这就是我在服务器上所做的事情:
Return System.Configuration.ConfigurationManager.AppSettings("url").ToString + "?token=" + HttpContext.Current.Session("Token").ToString() + "&aid=ca"
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?
Bar*_*art 17
首先,如果您担心看到""mystring""而不是"mystring"(双引号而不是单引号),那是因为开发人员控制台会自动在字符串值周围显示引号,如果您的字符串实际包含,这可能会造成混淆"引用"字符.您在控制台中看到的外部引号不在那里,只有内部引号.
接下来,根据JSON规范(http://www.json.org/),JSON字符串以引号开头和结尾.如果要解析json字符串,请使用:
var str = JSON.parse(req.responseText);
Run Code Online (Sandbox Code Playgroud)
如果你只想删除字符串中的所有引号,请尝试
var str = req.responseText.replace(/\"/g, "");
Run Code Online (Sandbox Code Playgroud)
请注意,后者删除了所有引号,包括字符串中间的(转义)引号.
如果您正在使用JSON对象,正如您的响应头(application/json)似乎表明的那样,我强烈建议您使用JSON.parse
| 归档时间: |
|
| 查看次数: |
8925 次 |
| 最近记录: |