搜尋

首頁  >  問答  >  主體

javascript - jquery ajax 回傳值獲取

`var a =1;

function setA(){
$.get('http://localhost/','a=2',function(ret){

  return ret.a;

});
}`
該如何讓函數setA回傳 用ajax取得到的ret.a的值?

怪我咯怪我咯2765 天前723

全部回覆(4)我來回復

  • 怪我咯

    怪我咯2017-06-26 10:52:25

    兩種方式
    1:ajax改成同步,可以直接取得正確的return的回傳值。
    2:ajax回呼中直接加入你的處理邏輯

    回覆
    0
  • 怪我咯

    怪我咯2017-06-26 10:52:25

    給getA加個函數的參數callback,然後在ajax回傳值裡用callback(set.a)。
    z在使用getA時這樣存取到set.a:getA(function(a){console.log(a)})

    範例如下:

        var a =1;
    
        function setA(callback){
            $.get('http://localhost/','a=2',function(ret){
                callback(ret.a);
            });
        }
        
        setA(function(a) {
            console.log('a:' + a)
        })

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-06-26 10:52:25

    雷雷

    回覆
    0
  • 高洛峰

    高洛峰2017-06-26 10:52:25

    setA裡使用一個臨時變數存儲,setA裡面的AJAX使用同步請求,成功後將值存在臨時變數中,然後由setA傳回臨時變數

    setA() {
        var temp = '';
    
        $.get({
            url: 'http://localhost/',
            data: {a: 2},
            async: false,
            success: function(ret) {
                temp = ret.a;
                return ;
            }
        });
        
        return temp;
    }

    回覆
    0
  • 取消回覆