在不同的.js文件中调用Ajax

我想从不同的.js文件调用Ajax调用。我做了这样的事情:在不同的.js文件中调用Ajax

function ajax(url,success,error) 

{

success+="(data)";

error+="(xhr, ajaxOptions, thrownError)";

console.log("Starting AJAX");

console.log("Success function: " + success);

console.log("Success function: " + error);

$.ajax({

crossDomain: true,

type: 'GET',

url: url,

callback: 'jsonpCallback',

jsonpCallback: 'jsonpCallback',

jsonp: '_jsonp',

scriptCharset: "utf-8",

contentType: 'application/json',

dataType: 'jsonp json',

timeout : 5000,

success: success_contact(data),

error: error_contact(),

});

}

还有函数success_contact和error contact。我开始像这样:

$(document).bind('pageinit', function() { 

ajax('http://topfirma-dev/topfirma-www/services/rest/contact/list','success_contact','error_contact');

});

Ajax调用被调用,但有一个错误:

Uncaught ReferenceError: data is not defined 

这里是我的问题。我如何从我的Ajax调用中捕获数据?

回答:

如果success_contacterror_contact是在别处定义的,则不需要在那里调用它们作为函数,而只是告诉它们是哪些函数。

var success_contact = function (data) { 

/* do something */

}

var error_contact = function (jqXHR, textStatus, errorThrown) {

/* do something */

}

// ...

$.ajax({

crossDomain: true,

type: 'GET',

url: url,

callback: 'jsonpCallback',

jsonpCallback: 'jsonpCallback',

jsonp: '_jsonp',

scriptCharset: "utf-8",

contentType: 'application/json',

dataType: 'jsonp json',

timeout : 5000,

success: success_contact,

error: error_contact,

});

回答:

当您进行ajax调用(或内联函数)时,您应该只是将函数的名称传递给成功(和错误)属性。

例如

$.ajax({                 

crossDomain: true,

type: 'GET',

url: url,

callback: 'jsonpCallback',

jsonpCallback: 'jsonpCallback',

jsonp: '_jsonp',

scriptCharset: "utf-8",

contentType: 'application/json',

dataType: 'jsonp json',

timeout : 5000,

success: success_contact,

error: error_contact,

});

那么你应该声明success_contact(和error_contact)功能:

var success_contact = function(data) { 

console.log(data);

};

或:

$.ajax({                 

crossDomain: true,

type: 'GET',

url: url,

callback: 'jsonpCallback',

jsonpCallback: 'jsonpCallback',

jsonp: '_jsonp',

scriptCharset: "utf-8",

contentType: 'application/json',

dataType: 'jsonp json',

timeout : 5000,

success: function(data, textStatus, jqXHR) {

console.log(data);

// Do stuff

},

error: function(jqXHR, textStatus, errorThrown) {

// Do stuff

}

});

以上是 在不同的.js文件中调用Ajax 的全部内容, 来源链接: utcz.com/qa/266211.html

回到顶部