Я делаю вызов jquery ajax и получаю асинхронный результат после того, как он завершится с await:
async () => {
const result = await $.ajax (url);
console.log (result);
}
Но в результате у меня есть только содержимое ответа, я хочу получить заголовки и статускод и так далее из объекта jqXHR.Как мне это получить?
Чтобы ответить на вопрос Ритулса, я хочу написать что-то вроде:
const result = await $.ajax(url);
const content = result[0];
const jqxhr = result[1];
console.log ('content:', content, 'status:', jqxhr.status);
РЕДАКТИРОВАТЬ:
Я попробовал следующий обходной путь и получаю странныйповедение (код машинописный):
const result = await ajax (gondorHeaderUrl);
console.log ('ajax result:', result);
console.log ('typeof ajax result:', typeof result);
function ajax (url: string, settings?: JQuery.AjaxSettings): Promise<JQuery.jqXHR> {
return new Promise (((resolve, reject) => {
$.ajax (url, settings)
.then ((data, textStatus, jqXHR) => {
console.log ( 'jqXHR:', jqXHR);
console.log ( 'typeof jqXHR:', typeof jqXHR);
resolve (jqXHR);
},
(jqXHR, textStatus, errorThrown) => reject (jqXHR)
);
}));
}
Консоль:
jqXHR: Object { readyState: 4...................
typeof jqXHR: object
ajax result: <!DOCTYPE html PUBLIC ...............
typeof ajax result: string
Почему результат отличается от jqxhr?Когда я обертываю его в объект, он работает:
resolve ({j:jqxhr});