.net &引用;Microsoft JScript编译错误:应为''&引用;调用ASMXWeb服务
我在Visual Studio 2008(SP1)下创建了一个非常简单的ASP.NET web应用程序,目标是.NET 3.5.net &引用;Microsoft JScript编译错误:应为''&引用;调用ASMXWeb服务,.net,asp.net,web-services,javascript,.net,Asp.net,Web Services,Javascript,我在Visual Studio 2008(SP1)下创建了一个非常简单的ASP.NET web应用程序,目标是.NET 3.5 启动页面是一个简化的ASPX页面,包含4个文本框、一个按钮和两个JScript函数: 主体的OnLoad处理程序。此函数仅将文本框的值设置为特定日期和时间以进行测试 按钮的OnClick处理程序。此处理程序调用本地化web服务并显示其结果 本地化是一种web服务。它的工作是获取用户的地区和国家信息,创建CultureInfo对象,并解析日期和时间信息,以便验证开始
- 启动页面是一个简化的ASPX页面,包含4个文本框、一个按钮和两个JScript函数:
- 主体的OnLoad处理程序。此函数仅将文本框的值设置为特定日期和时间以进行测试
- 按钮的OnClick处理程序。此处理程序调用本地化web服务并显示其结果
- 本地化是一种web服务。它的工作是获取用户的地区和国家信息,创建CultureInfo对象,并解析日期和时间信息,以便验证开始日期是否早于结束日期。这是在没有大量JScript代码的情况下实现这一点的唯一可靠方法,而JScript代码本质上是重新发明轮子。结果作为JSON字符串返回
try {
_this._webRequest.completed(Sys.EventArgs.Empty);
}
finally { // <-- RIGHT HERE, specifically, on the brace
if (_this._xmlHttpRequest != null) {
_this._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
_this._xmlHttpRequest = null;
}
}
试试看{
_此.u webRequest.completed(Sys.EventArgs.Empty);
}
最后{/我要把这个问题的答案贴出来,冒着让自己难堪的风险
在JScript代码中,我对调用的结果进行了评估,如下所示:
function(r)
{
var result = eval(r);
if (!result.Succeeded)
alert(result.Reason);
});
显然,问题在于,在将JSON字符串传递给eval时,必须将其括在括号中,如下所示:
function(r)
{
var result = eval("(" + r + ")");
if (!result.Succeeded)
alert(result.Reason);
});
不要问我为什么这样做,它就是这样。我稍后会解释为什么需要括号(以及为什么不应该使用eval解析Json)你能在finally块中提供剩余的代码吗?你不能依赖Ie javascript错误中的行号-你尝试过其他浏览器吗?我建议使用firebug的FireFox。根据要求添加finally块的剩余部分。