javascript - jQuery AJAX 函数 - Chrome 抛出 "Uncaught SyntaxError: Unexpected number"

标签 javascript jquery asp.net jsonp

我在屏幕上有许多可点击的对象,它们表示通过 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/

相关文章:

javascript - 计算卷轴上的数字

javascript - 访问内容页面元素

javascript - 是否可以在 vue-router 中锁定除一条以外的所有路由?安全吗?或者我应该使用另一种方法?

javascript - Kendo UI - js 网格销毁功能未触发

javascript - 文本框(textarea)的回车

javascript - 使用 fullpage.js 删除和添加类时遇到问题

javascript - 获取 attr 表单 <a href>

javascript - 如果选中复选框,则验证 DropDownList

javascript - 使用jQuery触发Enter事件

javascript - 为什么有多个不带参数的对象方法?