【发布时间】:2019-07-19 12:32:16
【问题描述】:
我使用 jquery $ajax 调用发出请求,但它返回回调函数本身,而不是正确的数据响应并显示消息“ReferenceError:recapCB 未定义”;
var recapMonthDEF = $.ajax({
type: 'get',
url: getAnalyticsApiURL('recapMonth'),
dataType: 'jsonp',
contentType: "application/json",
});
$.when(lastMonthSessionsDEF, recapMonthDEF).always(function(){
$('#Dashboard-tabs-1 .toggle input[type="checkbox"]').removeAttr('disabled');
});
recapMonthDEF.always(recapCB);
var recapCB = function(response){
if($('#newUsers').length == 0) return;
data = response;
var percent = parseFloat(parseFloat(data.percentNewSessions).toFixed(1));
var percentDiff = parseFloat((100 - percent).toFixed(1));
var sessionDuration = moment().startOf('day').seconds(data.sessionDuration).format('H:mm:ss');
$('#analitycs-session').html(data.sessions);
$('#analitycs-users').html(data.users);
$('#analitycs-pageviews').html(data.pageviews);
$('#analitycs-sessionsPerUser').html(parseFloat(data.sessionsPerUser).toFixed(2));
$('#analitycs-sessionDuration').html(sessionDuration);
$('#analitycs-newUsers').html(data.newUsers);
};
【问题讨论】:
-
所以使用响应对象来引用文本/json/
-
响应对象没有包含数据的字段
-
contentType: "application/json",在那里做什么?您正在发出 GET 请求,因此没有请求正文来描述类型,并且您正在使用 JSONP,因此您无法覆盖请求标头!
标签: javascript jquery httpresponse jquery-deferred