【发布时间】:2011-11-09 09:08:09
【问题描述】:
我有一个简单的函数,它只将翻译后的消息从服务器返回到客户端。但是当我将结果传递给 var 时,结果显示未定义。
function MessageNoResult() {
$.ajax(
{
type: "POST",
async: true,
url: '<%= ResolveUrl("~/WebMethods.aspx/MessageNoResult") %>',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
return msg.d;
}
});
}
结果 --> 未定义(错误)
var message = MessageNoResult();
alert(message);
当我查看标题时,它给了我:
Server ASP.NET Development Server/9.0.0.0
Date Wed, 09 Nov 2011 09:01:31 GMT
X-AspNet-Version 2.0.50727
Cache-Control private, max-age=0
Content-Type application/json; charset=utf-8
Content-Length 24
Connection Close
Response {"d":"No search result"}
JSON d "No search result"
为什么我仍然得到未定义的结果?
【问题讨论】:
-
您正试图从回调函数返回。其中一种方法是在
success块中响应您的代码 -
当您在
success: function(msg)中输入console.dir(msg)时,控制台会说什么? -
当我将代码放入成功块时,它运行良好。我试图让代码更可重用。
-
在这种情况下,您需要将处理 ajax 响应的逻辑放在它自己的函数中,并从您的成功处理程序中调用它 - 请参阅我和 AndreasAL 的答案以了解如何执行此操作。
标签: jquery ajax undefined webmethod