如何做一个自调用的AJAX帖子?

时间:2017-09-01 15:30:38

标签: javascript ajax http-post vuejs2 iife

我对自调用函数有点困惑,我已经做了一个http.get函数以这种方式从json获取数据(并且工作):

var Callmodule = (function(){
var urljsonEntrata= "modello.json";

function getmodules(){
    var req = $.ajax({
        url: urljsonEntrata,
        dataType: 'json',
        type: 'GET'
    });

    req.done(function(data){
        console.log('ajax to '+urljsonEntrata+' DONE');
        console.log(data);
        console.log('-----------------------------');
    });

    req.fail(function( jqXHR, textStatus, errorThrown ) {
        console.log('ajax to '+urljsonEntrata+' FAIL');
        console.log(jqXHR);
        console.log(textStatus);
        console.log(errorThrown);
        console.log('-----------------------------');
    });
    return req;
}
return {
    callGetmodules : getmodules(),
}
})();

我这样做是因为我想在vue.js应用程序中使用它,并且我以这种方式调用它:

  methods:{
getModuleData : function(){             
    var req = Callmodule.callGetmodules;
    var self = this;
    req.done(function(data){
        self.modello=data;
        self.isLoading=false;
    });
    req.fail(function(jqXHR,textStatus,errorThrown){
        console.log('richiesta andata a male')
    }); 
}

现在我对 http.POST 以同样的方式尝试过,但只是它不起作用

var PostModule = (function(datadapostare){
var PostUscita= "http://www.website.com/filephp.php";
var datapost = datadapostare
function postquote(){
    var req = $.ajax({
        type: 'POST',
        url: PostUscita,
        data: datapost,
        dataType: 'json',
    });

    req.done(function(data){
        console.log('ajax to '+PostUscita+' DONE');
        console.log(data);
        console.log('-----------------------------');
    });

    req.fail(function( jqXHR, textStatus, errorThrown ) {
        console.log('ajax to '+PostUscita+' FAIL');
        console.log(jqXHR);
        console.log(textStatus);
        console.log(errorThrown);
        console.log('-----------------------------');
    });
    return req;
}
return {
    Postmodules : postquote(),
}
})();

以及我发布它的方式(考虑它包含在vuejs方法中):

postData : function(){             
var req = Postmodule.Postmodules;
var self = this;
req.done(function(data){
    self.modello=data;
    self.isLoading=false;
});
req.fail(function(jqXHR,textStatus,errorThrown){
    console.log('richiesta andata a male')
}); 

}

为什么它没有完成?以及以何种方式我必须将数据对象传递给帖子?

提前谢谢

1 个答案:

答案 0 :(得分:0)

我建议使用vue-resource或axios来处理http请求,它有一个更简单的API而不是使用jQuery库