【发布时间】:2018-07-30 03:48:52
【问题描述】:
我在文件default.aspx.vb中有如下页面方法,使用.NET 2.0:
<WebMethod()> _
Public Shared Function GetStatisticData(ByVal userId As Integer) As JavaScriptSerializer
Dim stats As JavaScriptSerializer = New JavaScriptSerializer()
stats.Serialize(statBiz.GetAllSaleStatistics(userId))
Return stats
End Function
在 default.aspx 中
opt.ajax({
type: "POST",
url: 'default.aspx/GetStatisticData',
data: "{userId: 6601}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
console.log(data);
},
error: function (request, status, error, response) {
console.log(error);
}
});
但是代码隐藏文件中的方法永远不会被命中,我从控制台日志中得到这个错误:
SyntaxError: Unexpected token < in JSON at position 2
at JSON.parse (<anonymous>)
at n.parseJSON (jquery-1.12.4.min.js:11)
at Xb (jquery-1.12.4.min.js:11)
at y (jquery-1.12.4.min.js:11)
at XMLHttpRequest.c (jquery-1.12.4.min.js:11)
谁能告诉我这里缺少什么?
【问题讨论】:
-
你有一个 ScriptServiceAttribute 来装饰你的 WebService 的类吗?
-
请/检查发布服务器响应(如果确实正在发出请求,当然stackoverflow.com/q/43363866/397817 Fiddler 之类的工具很有帮助。
-
另外,您使用的是什么版本的 .NET?
-
这是 .net 2.0 上的旧应用程序
-
你能在服务器响应中发帖吗?我有一种感觉是XML。是否可以针对 .NET 3.5? (与 2.0 相同的 CLR,但具有额外的功能和错误修复)。
标签: asp.net .net ajax vb.net javascriptserializer