async function elementUpdate(selector) {
try {
var html = await (await fetch(location.href)).text();
var newdoc = new DOMParser().parseFromString(html, 'text/html');
document.querySelector(selector).outerHTML = newdoc.querySelector(selector).outerHTML;
console.log('Элемент '+selector+' был успешно обновлен');
return true;
} catch(err) {
console.log('При обновлении элемента '+selector+' произошла ошибка:');
console.error(err);
return false;
}
}
elementUpdate('.test');
// Запускаем функцию autoUpdate по готовности страницы:
document.addEventListener('DOMContentLoaded', autoUpdate);
// Функция для запуска цикла:
async function autoUpdate() {
// Бесконечный цикл:
while (true) {
// Обновляем блок .test:
await elementUpdate('.test');
// Выжидаем 1000 миллисекунд перед повторением цикла:
await new Promise(function(s) { setTimeout(s, 1000); });
}
}
// Функция для обновления контента:
async function elementUpdate(selector) {
try {
var html = await (await fetch(location.href)).text();
var newdoc = new DOMParser().parseFromString(html, 'text/html');
document.querySelector(selector).outerHTML = newdoc.querySelector(selector).outerHTML;
console.log('Элемент '+selector+' был успешно обновлен.');
return true;
} catch(err) {
console.error('При обновлении элемента '+selector+' произошла ошибка:', err);
return false;
}
}
async function elementUpdate(selector) {
try {
var html = await (await fetch(location.href)).text();
var newdoc = new DOMParser().parseFromString(html, 'text/html');
document.querySelector(selector).outerHTML = newdoc.querySelector(selector).outerHTML;
console.log('Элемент '+selector+' был успешно обновлен');
return true;
} catch(err) {
console.log('При обновлении элемента '+selector+' произошла ошибка:');
console.error(err);
return false;
}
}
elementUpdate('.soderzhimoye');
<button onclick="elementUpdate('.soderzhimoye');">Нажми меня, чтобы обновить блок</button>
$_POST
был НЕ пустым надо отправлять данные в кодировке application/x-www-form-urlencoded
или multipart/form-data
. Вы в своем примере пытаетесь отправить данные в кодировке application/json
, при этом еще и неправильно это делайте.window.addEventListener('load', check); // Запуск check после полной загрузки страницы
async function check() {
var data = {
'test': 'Привет, мир!',
'myname': 'Дмитрий'
};
var response = await (await fetch('https://site.ru/script.php', {
'method': 'POST',
'headers': {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
'body': new URLSearchParams(data).toString()
})).text();
console.log('Ответ сервера:', response);
return response;
}
var original = {
open: XMLHttpRequest.prototype.open,
send: XMLHttpRequest.prototype.send
};
XMLHttpRequest.prototype.open = function (method, url, async, user, password) {
console.log('Параметры запроса:', [method, url, async, user, password]);
return original.open.call(this, method, url, async, user, password);
};
XMLHttpRequest.prototype.send = function (data) {
console.log('Тело запроса:', data);
return original.send.call(this, data);
};
async function sample(arr) {
for (var i = 0; i < arr.length; i++) {
try {
var result = await $.ajax({
url: '...',
dataType: 'jsonp',
type: 'GET',
delay: 250,
data: { q: arr[i] }
});
if (result) {
console.log('Получен ответ:');
console.dir(result);
}
else {
console.log('Получен пустой ответ:');
console.dir(result);
console.log('Прерываем цикл...');
break;
}
}
catch (err) {
console.log('Ошибка:');
console.error(err);
console.log('Прерываем цикл...');
break;
}
}
}
response = await (await fetch('https://jsonplaceholder.typicode.com/users')).json();
console.log(response);
async function func() {
const response = await fetch('https://jsonplaceholder.typicode.com/users');
return await response.json();
}
console.log(await func());
<?php
// Если мы получили GET-запрос:
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
header('Location:/', TRUE, 301); // Переадресуем на главную
}
// Если мы получили POST-запрос:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Выводишь данные, которые нужны
}
$(function () {
$("#show").one('click', function () {
$("#container").html('<iframe src="page.html"></iframe>');
});
});
<script>
$(function() {
// Ссылка на форму которую надо грузить без перезагрузки страницы:
var form = $('form[action="https://dev.itlvl.com/nashi-raboty/"]');
// Вешаем на поля формы обработчик кликов:
form.find('input[type="radio"]').click(async function(e) {
e.preventDefault(); // Предотвращаем клик
form.css('pointer-events', 'none'); // Блокрируем повторные клики
// Формируем ссылку на страницу которая содержит данные кликнутого таба:
var link = 'https://dev.itlvl.com/nashi-raboty/?' + $(this).attr('name') + '=' + $(this).val();
var request = $.ajax(link); // Запускаем процесс загрузкки этой страницы
// Пока грузится, делаем плавное исчезновение текущего таба:
await $('.grid-listing').animate({ opacity: 0 }, 500).promise();
// Получаем те данные что загрузили и меняем URL в браузере:
var html = await request; history.pushState(null, null, link);
// Удаляем атрибут активности со всех полей:
form.find('input[type="radio"]').removeAttr('checked');
$(this).attr('checked', 'checked'); // Делаем активным текущий таб
// Вставляем данные с нового таба на текущую страницу:
var doc = new DOMParser().parseFromString(html, 'text/html');
var html = $('.grid-listing', doc).html();
$('.grid-listing').html(html);
var html = $('.listing-page__pagination', doc).html();
$('.listing-page__pagination').html(html);
// Делаем плавное появление для вставленного контента:
await $('.grid-listing').animate({ opacity: 1 }, 500).promise();
form.css('pointer-events', ''); // Снимаем блокировку кликов
});
});
</script>
async function elementUpdate(selector) {
try {
var html = await (await fetch(location.href)).text();
var newdoc = new DOMParser().parseFromString(html, 'text/html');
document.querySelector(selector).outerHTML = newdoc.querySelector(selector).outerHTML;
console.log('Элемент '+selector+' был успешно обновлен');
return true;
} catch(err) {
console.log('При обновлении элемента '+selector+' произошла ошибка:');
console.dir(err);
return false;
}
}
elementUpdate('div#block');
// Запуск асинхронного кода:
(async function() {
// Бесконечный цикл:
while (true) {
await elementUpdate('div#block'); // Обновляем блок
// Выжидаем 1000 миллисекунд, а потом код внутри while выполняется вновь:
await new Promise(function(success) { setTimeout(success, 1000); });
}
})();
<form></form>
, он сам отправит ваши файлы, достаточно указать адрес на который нужно отправлять.