我在屏幕上有许多可点击的对象,它们表示通过 COM 组件连接的软件中的对象。
当我点击一个对象时,我会发送对象的名称、 session ID 和我要运行的命令。
我试图实现的特定命令的代码是一个基于 C# 的 ASP.NET 页面:
case "myClick":
dynamic simObj = S8COM.get_SimObject(Request["id"]);
responseData = "{name:" + simObj.Name.ToString() + ",countInRoutes:" + simObj.CountInRoutes.ToString() + ",countOutRoutes:" + simObj.CountOutRoutes.ToString() + ",index:" + simObj.Index.ToString() + ",capacity:" + simObj.Capacity.ToString() + ",completed:" + simObj.Completed.ToString() + ",routeOutMethod:" + simObj.RouteOutMethod.ToString() + "}";
break;
这对某些对象有效,但对其他对象无效,会抛出“未捕获的语法错误:意外数字”异常。
我用来调用这个特定函数的 JS 是:
S8Web.Requestmanager.makeRequest({ data: { command: "myClick", id: aItem.id }, async: true, callback: function(data){
alert(data.CountInRoutes); //Do a vardump of the response
}});
还有一些响应,第一个响应正常,而第二个响应抛出意外数字异常:
jsonp1319203225074({name:Start,countInRoutes:0,countOutRoutes:1,index:5,capacity:0,completed:0,routeOutMethod:4});
jsonp1319203225066({name:Process 1,countInRoutes:1,countOutRoutes:1,index:1,capacity:1,completed:0,routeOutMethod:1});
我能看到的唯一可能影响结果的是“Process”和“1”之间的空格。这就是引发此错误的原因吗?
最佳答案
您很可能只是遇到了引号不正确的问题。
例子:
<a href='#' onclick="doStuff('joe, '2844')">click here</a>
由于第一个参数没有正确关闭,它被解释为'joe,'。这使得 2844' 成为函数调用的其余部分,没有前导引号。这种情况会抛出 Unexpected Number 错误。
关于javascript - jQuery AJAX 函数 - Chrome 抛出 "Uncaught SyntaxError: Unexpected number",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7850184/