Jquery调用后台方法提示undefined错误

mizuho_2006 2012-08-31 10:10:25

$(function () {
$("#linkPost").click(function () {

$.ajax({
type: "POST",
url: "post.aspx/SubmitThread",
data: null,
dataType: 'text',
contentType: "application/json; charset=utf-8",
beforeSend: function (XMLHttpRequest) {
$('#footer').text("正在查询...");
},
success: function (result) {
alert(result.d);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}

})

});
})



代码如上,每次点击连接都会提示来自网页的消息“undefined”。到底哪里未定义呢?post.aspx后台中SubmitThread方法定义成了public的,而且也不需要传参数。请高手指点小弟。
...全文
635 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
苦难守望者 2014-03-28
  • 打赏
  • 举报
回复
我也遇到这个问题了,如果是data.d是undefined,但是如果是data则是{“d”:"xxxxxx"}。很奇怪!
mizuho_2006 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
undefined 是js错误 是找不到元素 或者找不到元素的值 之类的东西
你的代码 最有可能的是 alert(result.d); 这一句错了 result.d 获取不到值 或者是你返回 根本就没有[/Quote]

谢谢高手。我把那句改成alert("hello")或者去掉,还是提示这个错误。我不知道哪里没有定义了,感觉哪里都没有少。
风2013 2012-08-31
  • 打赏
  • 举报
回复
undefined 是js错误 是找不到元素 或者找不到元素的值 之类的东西
你的代码 最有可能的是 alert(result.d); 这一句错了 result.d 获取不到值 或者是你返回 根本就没有d 这个东西 如果你要想这样能result.d取到值 那你返回的结果 肯定是json格式的
{"d":[{"rname":"xx","rid":"xxx"},{"rname":"xx","rid":"xxx"}]} 这种类型的
mizuho_2006 2012-08-31
  • 打赏
  • 举报
回复
$('#footer')可以取到,文本已经被赋值为“正在查询...”了。$("#linkPost") 就更不用说了,里面代码都执行了怎么会取不到呢?我把result.d这个注释掉还是未定义错误呀。。

JQuery还能调试??我以为只能alert呢
画龙添脚 2012-08-31
  • 打赏
  • 举报
回复
弹出的消息肯定是alert();出来的不是result.d未获取到就是errorThrown未获取到,打个断点调试一下就知道了
色拉油 2012-08-31
  • 打赏
  • 举报
回复
调试时王道啊,靠猜测有啥用
色拉油 2012-08-31
  • 打赏
  • 举报
回复
用firebug看看哪个对象没取到

估计是这个$("#linkPost")
杰拉尔 2012-08-31
  • 打赏
  • 举报
回复
undefined 是JS错误 和后台没关系 是哪个jquery对像没取到 $('#footer') $("#linkPost") 或result没有.d的属性
Assassin_ 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 6 楼 的回复:
undefined 是js错误 是找不到元素 或者找不到元素的值 之类的东西
你的代码 最有可能的是 alert(result.d); 这一句错了 result.d 获取不到值 或者是你返回 根本就没有

谢谢高手。我把那句改成alert("hello")或者去掉,还是提示这个错误。我不知道哪里没有定义了,感觉哪里都没有少。
[/Quote]

如果改成alert("hello")还是弹出那个错误的话,.可以看看是不是请求结果进入了Error.从error入手吧
Assassin_ 2012-08-31
  • 打赏
  • 举报
回复
result.d 问题在这里.

你后台返回的是什么格式?

建议alert(result)试试
happytonice 2012-08-31
  • 打赏
  • 举报
回复
js直接调用后台方法,换种方式吧
龙火 2012-08-31
  • 打赏
  • 举报
回复
你吧alert(result.d)改成alert(result),看看还是不是undefined

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧