Javascript Ajax:获取ajax响应对象的属性值

时间:2016-10-10 14:35:45

标签: javascript jquery ajax

我有一个函数调用web服务的ajax请求。

ajax调用的结果是一个对象。

另外,当我点击按钮时,我需要返回对象的特定属性的值,即 responseJSON

我怎么能得到它?

这是我的ajax功能:

checkBtnPostulate: function () {
            return $.ajax({
                method: 'POST',
                url: annonce.route.testpostulate,
                data: {msg}
                dataType: 'json',
                success: function (data) {
                    //console.log(data);
                    if (data == 1) {              
                        $("#postulate-btn").removeClass("btn-postuler");
                        $("#postulate-btn #postulerState").text("Retirer la candidature");

                    } else if (data == 0) {       
                        $("#postulate-btn").addClass("btn-postuler");
                        $("#postulate-btn #postulerState").text("Postuler");

                    } else if (data == 2) {        
                        $("#postulate-btn").hide();

                    }
                },
                error: function (data) {
                    console.log(data);
                }
            });

        },

以下是点击按钮的功能,我使用之前功能的返回功能。

postulate: function () {
            $('body').one().on('click', '#submitCandidature', function (e) {
                window.annonce.checkBtnPostulate();  //MY PREVIOUS FUNCTION CALL
                var response = window.annonce.checkBtnPostulate(); // the object returned


                if (response.responseJSON == 1) {  // i need to get here the value
                    var FormCandidature = $("#form-candidature");
                    var candidatureObject = serializeObject(FormCandidature);
                    candidatureObject["id_mission"] = id_annonce;
                    var candidatureObject = JSON.stringify(candidatureObject);
                    window.sendData.start(FormCandidature, candidatureObject, "#modal-postuler");

                        }
                    })
                }
            });
        },

enter image description here

我怎么能以最简单的方式得到它?

2 个答案:

答案 0 :(得分:0)

从我理解你的问题的方式我会认为在你的ajax调用中使用回调将是实现你正在寻找的东西的最佳方式以下是你的代码看起来像使用回调:

checkBtnPostulate: function (callback) {
        return $.ajax({
            method: 'POST',
            url: annonce.route.testpostulate,
            data: {msg}
            dataType: 'json',
            success: function (data) {
                callback(data);
            },
            error: function (data) {
                console.log(data);
            }
        });

    },

 postulate: function () {
        $('body').one().on('click', '#submitCandidature', function (e) {
            window.annonce.checkBtnPostulate(function(data){

 //Confused with what you want but if you have an object off of data you might do something like this
                if(data.responseJSON == 1){
                    var FormCandidature = $("#form-candidature");
                    var candidatureObject = serializeObject(FormCandidature);
                    candidatureObject["id_mission"] = id_annonce;
                    var candidatureObject = JSON.stringify(candidatureObject);
                    window.sendData.start(FormCandidature, candidatureObject, "#modal-postuler");
                }
                if (data == 1) {              
                    $("#postulate-btn").removeClass("btn-postuler");
                    $("#postulate-btn #postulerState").text("Retirer la candidature");

                } else if (data == 0) {       
                    $("#postulate-btn").addClass("btn-postuler");
                    $("#postulate-btn #postulerState").text("Postuler");

                } else if (data == 2) {        
                    $("#postulate-btn").hide();

                }
            }); 


            if (response.responseJSON == 1) {  // i need to get here the value
                var FormCandidature = $("#form-candidature");
                var candidatureObject = serializeObject(FormCandidature);
                candidatureObject["id_mission"] = id_annonce;
                var candidatureObject = JSON.stringify(candidatureObject);
                window.sendData.start(FormCandidature, candidatureObject, "#modal-postuler");

                    }
                })
            }
        });
    },

这样做可以让您在点击事件中直接访问ajax调用中的数据。

答案 1 :(得分:0)

data[ix].attribute 

离;

data[0].name

如果JSON中有多个对象,您可能想要遍历每个对象?

汤姆