$.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, время: 07:44. |