ajax 封装到函数后,调用函数取值问题

function getStatus(){

    var flag;

    $.ajax({

    type: 'post',

    url: '/getdata.php',

    dataType: 'text',

    cache: false, 

    error: function(){

        alert('出错了!'); 

        return false; 

    }, 

    success: getData          

    })

    function getData(data){

        flag = data;

        return flag;

    }

}

我想直接调用函数取得flag值,类似于var result = getStatus(); 把ajax和回调函数写在一个函数里,这种情况能不能取得其值?或者有没有其他办法获通过调用函数取值

一只萌萌小番薯
浏览 412回答 1
1回答

慕慕森

最简单方法是改成同步,或者用promise, 自己封装ajaxfunction ajax(url,data) {        return new Promise(function (resolve, reject) {            var xhr = new XMLHttpRequest();            xhr.open('post', url, true);            xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded")            xhr.onload = function () {                if (xhr.status === 200  || xhr.status === 304){                    resolve(xhr);                }else{                    reject({                        errorType: 'status_error',                        xhr: xhr                    })                }            }            xhr.onerror = reject;            xhr.send(data);        })    }使用方法ajax('/query',{a:1}).then(    function(data){        console.log(data.response)}).catch(    function(err){        console.log(err)})可以根据需要封装更多的参数, 这里我只封装了数据, 请求方式统一post
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript