Javascript Function With JQuery POST Always Returns undefined

后端 未结 5 1556
情书的邮戳
情书的邮戳 2020-12-20 02:35

I have no idea what\'s going on here and was hoping someone could help, I\'m sure it\'s something easy going on that I\'m just missing.

I have a function in javascri

相关标签:
5条回答
  • 2020-12-20 03:04

    I realize this is an older post, but a solution for me was to use complete:[delegate] rather than success. This ensures that the callback is complete.

    0 讨论(0)
  • 2020-12-20 03:09

    You can't do it like that. Remember, the "A" in AJAX means "Asynchronous". The callback function you provide to $.post() will execute well after GetTotalSize() executes and returns.

    You'll need to restructure your code to accommodate this. I can't be specific in my recommendation because I don't know what the rest of your code looks like, but here's a possibility.

    $.post("Handlers/GetTotal.ashx", {id : $("#hID").val()}, function(data)
    {
      doSomethingWithTotalSize( data.toString() );
    });
    
    function doSomethingWithTotalSize( totalSize )
    {
      // whatever
    }
    
    0 讨论(0)
  • 2020-12-20 03:11

    Peter is absolutely right, but you can force the $.ajax method to work synchronously by passing async: false.

    0 讨论(0)
  • 2020-12-20 03:12

    Try this

    function GetTotalSize(callback) {    
      $.post("Handlers/GetTotal.ashx", {id : $("#hID").val()}, function(outputData) {
           callback(outputData);
        });
    }
    
    function DoSomething(data)
    {
       //....
    }
    
    GetTotalSize(DoSomething);
    
    0 讨论(0)
  • 2020-12-20 03:28

    The problem is that you are returning i outside of the callback function. Basically when you return i, its contents don't exist yet, and won't exist until the server returns the data to your callback function.

    0 讨论(0)
提交回复
热议问题