为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只萌萌小番薯 2018-11-22 18:14:31
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和回调函数写在一个函数里,这种情况能不能取得其值?或者有没有其他办法获通过调用函数取值
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

最简单方法是改成同步,或者用promise, 自己封装ajax

function 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

查看完整回答
反对 回复 2018-12-31
  • 1 回答
  • 0 关注
  • 411 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信