在不同的.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_contact
和error_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