$.ajax переписать на fetch
Как переписать отправку формы написанную на jQuery, используя fetch
function messagesFromBase() {
var subjectId = 2;
var lastName = 'text';
var firstName = 'text';
var thirdName = 'text';
var companyName = 'text';
var response = {};
$.ajax({
async: false,
type: "POST",
dataType: 'json',
charset: 'windows-1251',
url: "url-base",
data: {
subjectId: subjectId,
lastName: lastName,
firstName: firstName,
thirdName: thirdName,
companyName: companyName
},
success: function (resp) {
response = resp;
},
error: function (jqXHR, status, e) {
response = false;
},
});
return response;
}
|
async: false, не пройдет. fetch всегда асинхронный
Про windows-1251 тоже сомневаюсь. Обычно все в utf-8 |
Накатал такой вариант, в консоль выводит полученные массивы, но сам return response? не заполняет необходимые поля при вызове функции
async function messagesFromBase() {
var subjectId = 2;
var lastName = 'text';
var firstName = 'text';
var thirdName = 'text';
var companyName = 'text';
var response = {};
var dataB = new FormData();
dataB.append('subjectId', subjectId);
dataB.append('lastName', lastName);
dataB.append('firstName', firstName);
dataB.append('thirdName', thirdName);
dataB.append('companyName', companyName);
try {
const resp = await fetch("url-base", {
method: 'POST',
body: dataB
});
response = await resp.json();
} catch (error) {
console.log('Ошибка:', error);
}
console.log(response)
return response;
}
|
TheSanches,
сделайте вызов функции что у вас там заполняет в строке 21 пост #3 |
В рабочем варианте я должен получать массивы с базы
{messageCount: 9, log: Array(9), ticketId: 11620, null: null}
На основании этих данных рисую верстку |
пост #1
Полностью рабочий, но из-за async: false, не могу установить время ожидания ответа сервера, И если серв. не отвечает, все виснет. Поэтому питаюсь переписать на fetch |
Цитата:
Нужно писать
messagesFromBase(...)
.then(res => {
// тут будет ответ для заполнения полей
})
.catch(err => {
// тут ошибка
})
|
| Часовой пояс GMT +3, время: 03:22. |