我对自调用函数有点困惑,我已经做了一个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')
});
}
为什么它没有完成?以及以何种方式我必须将数据对象传递给帖子?
提前谢谢
答案 0 :(得分:0)
我建议使用vue-resource或axios来处理http请求,它有一个更简单的API而不是使用jQuery库