举个例子,我试图包装一个jQuery AJAX调用以供重用:
function do_ajax(url, data) {
return $.ajax(url, {
method: 'GET',
data: data,
headers: {
Authorization: auth_header
},
dataType: 'json'
});
}
do_ajax('/my_url', { stuff: 'here' }).done(function(response) {
console.log('response');
});
据我了解,这应该有效。为什么不呢?我认为$.ajax
本身就是一个函数,因此可以通过我的封闭函数返回。谁能聪明地解释我做错了什么?
答案 0 :(得分:1)
我怀疑变量auth_header
未在您定义do_ajax
函数的范围内定义,但它是在您尝试调用do_ajax
的范围内定义的。这可以解释为什么$.ajax
可以内联工作,但不能通过do_ajax
调用。
尝试更改
function do_ajax(url, data) {
到
function do_ajax(url, data, auth_header) {
并且还要改变
do_ajax('/my_url', { stuff: 'here' }).done(function(response) {
到
do_ajax('/my_url', { stuff: 'here' }, auth_header).done(function(response) {