У меня есть этот код, чтобы сделать запрос ajax, но в соответствии с Chrome Inspector обратный вызов, связанный с запросом, вызывается дважды (этим я подразумеваю, что ответ дважды записывается в консоль) , Еще 2 журнала печатаются без какого-либо контента. Вот код:Ajax-вызов вызывает больше обратных вызовов, чем ожидалось
var ajax = {
pull: function (settings) {
settings.type = 'get';
settings.callback = typeof (settings.callback) === 'function' ? settings.callback : false;
settings.data = settings.data ? settings.data : null;
return this.request(settings.url, settings.type, settings.callback, settings.data);
},
request: function (url, type, callback, data) {
var ids = ['MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP',
'Microsoft.XMLHTTP'],
xhr;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else {
for (var i = 0; i < ids.length; i++) {
try {
xhr = new ActiveXObject(ids[i]);
break;
} catch (e) {}
}
}
if (callback) {
xhr.onreadystatechange = function() {
callback(xhr);
};
}
xhr.open(type, url, true);
if (type.toUpperCase() === 'GET') {
xhr.send();
} else if (type.toUpperCase() === 'POST') {
xhr.send(data);
}
}
}
ajax.pull({
url: 'http://localhost/my/twtools/scripts/ajax.php',
callback: function (xhr) {
console.log(xhr.response);
}
});
Я пытаюсь оставить JQuery на самом деле, это сделало меня ленивым человеком. Спасибо за помощь. – yoda
Честно говоря, я согласен, что в наши дни я стараюсь использовать собственный JavaScript, имеет тенденцию работать лучше, хотя ajax и анимация - это две области, которые я не вернул. – OJay
Я все еще езжу в своей машине, даже если это «лениво» "чем ехать на лошади или ходить 8 миль. –