Ajax-запросы
Пример ajax-запроса с передачей заголовка запроса (для отправки файла - из обычного надо удалить) и с чтением ответа, как текста (можно читать как json).
let data = new FormData();
data.append('param1', 'value1');
fetch('', {
method: 'post',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
mode: 'no-cors',
headers: {
'Content-Type': 'application/json',
},
body: data
}).then(function(resp) {
if(resp.status == 200){
resp.text().then(function(resp){
console.log(resp);
});
}
}).catch(err => alert(err));
Обратите внимание! параметр mode:'no-cors' не сможет разрешить скрипту выполнять кроссдоменные запросы, а только отключит ругань (возможно). Для отключения контроля кроссдоменных запросов этот параметр надо убрать, а в php-приемщике на бэкенде прописать одно (или все) из этого:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header("Access-Control-Allow-Headers: X-Requested-With");
Пример ajax-запроса с преобразованием кодировки ответа cp1251 => utf8.
fetch('/url/', {
method: 'get'
}).then(function(resp){
if(resp.status == 200){
resp.arrayBuffer().then(function(buffer){
let decoder = new TextDecoder('windows-1251');
let resp = decoder.decode(buffer);
console.log(resp);
});
}
}).catch(err => alert(err));
Пример синхронного ajax-запроса.
async function exampleFetch() {
const response = await fetch('https://reqres.in/api/users/2');
const json = await response.json();
console.log(json);
}
exampleFetch()