日期:2014-05-16  浏览次数:20485 次

菜鸟问个ajax问题,100分献上
    <script type="text/javascript" language="javascript">
        function getobj(va) {
            $.ajax({
                type: "post",
                url: "../Ashx/LoginWebHandler.ashx",
                dataType: "text",
                async: false,
                data: va,
                success: function(msg) {
                    return msg;
//这里返回的msg有值;
                }
            });

            function login() {
                var vaob = { account: '123', pwd: "123456" };
                var ms = getobj(vaob);
//这里获取的ms为undefined
            }
        }
    </script>


我查了一下说调ajax返回值不能直接这样写,需要callback方法,但是不知道callback怎么用,求一个简短的demo
------解决方案--------------------
function(msg)就是回调方法
你需要把逻辑直接写这个方法里面,不要return出来
------解决方案--------------------
var ms = getobj(vaob).responseText;
------解决方案--------------------
楼上+1, function(msg)就是回调函数,你要处理什么,写到回调函数里面即可,它会自动执行,不需要Return
------解决方案--------------------
success: function(msg) {  }
这样写就是回调函数啊!
------解决方案--------------------
引用:
Quote: 引用:

你在哪里查的?为什么不能这么写?


看楼下大神回答的,不能return

不是不能return 是看需求return return后 函数就结束了
你上文中的return什么也没干嘛.

可以使用console.log(msg) 在浏览器中看看你拿到的十个什么玩意
你对ajax就会更了解了.
------解决方案--------------------
引用:
var ms = getobj(vaob).responseText;

方法需要这么写
 function getobj(va) {
       var aj=     $.ajax({
                type: "post",
                url: "../Ashx/LoginWebHandler.ashx",
                dataType: "text",
                async:&n