let result = document.querySelector('#result');
let button = document.querySelector('#button');
button.addEventListener('click', async function() {
result.innerHTML = await (await fetch('ajax/first-p')).text();
result.innerHTML = await (await fetch('ajax/second-p')).text();
});
let result = document.querySelector('#result');
let button = document.querySelector('#button');
button.addEventListener('click', async function() {
result.innerHTML = await (await fetch('ajax/first-p')).text();
await wait(2000); // Ждём 2 секунды, только потом продолжаем
result.innerHTML = await (await fetch('ajax/second-p')).text();
});
// Функция для выставления задержек:
function wait(ms) {
return new Promise(function(success) {
setTimeout(function() {
success(true);
}, ms);
});
}
for (key in jsonData.checkList) {
var response = await $.ajax({
type: 'POST',
url: '/action/action.php',
data: jsonData.checkList[key],
dataType: 'json' // Указываем, что ответ надо сразу распарсить, как JSON
});
console.log('Получены данные:');
console.dir(response);
}
async function getNews(fileName, className, key, limit, offset) {
var params = new URLSearchParams();
params.append('key', key);
params.append('limit', limit);
params.append('offset', offset);
var body = params.toString();
var news = await (await fetch('server/' + fileName, {
'method': 'POST',
'headers': {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
'body': body
})).text();
if (document.querySelector(className)) {
document.querySelector(className).insertAdjacentHTML('beforeEnd', news);
} else {
console.log('Элемент соответствующий селектору '+className+' отсутствует на странице!');
}
console.log("Ответ сервера:\n" + news);
}
<?php
// Указываем браузеру, что ответ будет текстом:
header('Content-Type: text/plain; charset=utf-8');
// Включаем показ ошибок:
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
// Если это POST-запрос:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Адрес для пересылки формы:
$url = 'http://diplom/example.php';
// Конвертируем все полученные данные с формы
// в строку application/x-www-form-urlencoded:
$vars = http_build_query($_POST);
// Создаём новый сеанс:
$curl = curl_init();
// Указываем адрес целевой страницы:
curl_setopt($curl, CURLOPT_URL, $url);
// О отключаем проверку SSL сертификата:
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
// Устанавливаем заголовки для имитации браузера:
$headers = array(
'Accept: */*',
'Accept-Encoding: identify',
'Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
'Connection: keep-alive',
'Content-Length: '.strlen($vars),
'Content-Type: application/x-www-form-urlencoded',
'Host: '.parse_url($url)['host'],
'Origin: '.parse_url($url)['scheme'].'://'.parse_url($url)['host'],
'Referer: '.parse_url($url)['scheme'].'://'.parse_url($url)['host'].'/',
'sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"',
'sec-ch-ua-mobile: ?0',
'Sec-Fetch-Dest: empty',
'Sec-Fetch-Mode: cors',
'Sec-Fetch-Site: cross-site',
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
// Указываем, что у нас POST запрос:
curl_setopt($curl, CURLOPT_POST, 1);
// Разрешаем переадресацию:
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
// Запрещаем прямяой вывод результата запроса:
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// Добавляем данные для отправки:
curl_setopt($curl, CURLOPT_POSTFIELDS, $vars);
// Делаем сам запрос:
$result = curl_exec($curl);
// Завершаем сеанс:
curl_close($curl);
// Выводим результат:
echo $result;
}
async function getFile() {
var formData = new FormData();
formData.append('id', 'Ваш ID');
formData.append('test', 'Значение параметра test');
var blob = await (await fetch('https://адрес_для_совершения_запроса', {
method: 'POST',
body: formData
})).blob();
console.log('Файл успешно скачан:');
console.dir(blob);
var link = document.createElement('a');
link.download = 'filename.xlsx';
link.href = URL.createObjectURL(blob);
link.click();
return blob;
}
$('form').submit(async function(event) {
event.preventDefault(); // Предотвращаем отправку формы
var form = new FormData($('form')[0]); // Получаем форму
// Отправляем форму AJAX-ом:
var response = await $.ajax({
type: 'POST',
url: 'mail.php',
cache: false,
data: form,
});
alert(response); // Выводим ответ
});
async function pageUpdate(event) {
// Если функция вызвана без аргументов:
if (typeof event == 'undefined') {
// Устанавливаем обработчики
// на все ссылки на странице:
$('a[href]').click(pageUpdate);
}
// Если функция вызвана
// в результате клика
// по ссылке:
else {
// Берём адрес с нажатой ссылки
// и записываем в переменную link:
var link = event.target.href;
// Если ссылка ведет на наш сайт:
if (link.includes(location.host)) {
// Предотвращаем переход:
event.preventDefault();
// Блокируем страницу, чтобы
// больше нельзя было кликать:
$('body').css('pointer-events', 'none');
// Активируем анимацию
// постепенного исчезновения
await $('body').animate({ opacity: 0 }, 1000).promise();
// Грузим новую страницу AJAX-ом без
// фактической перезагрузки текущей:
var html = await $.ajax(link);
var doc = new DOMParser().parseFromString(html, 'text/html');
var html = $('body', doc).html();
history.pushState(null, null, link);
$('body').html(html);
// Заново ставим
// обработчики:
pageUpdate();
// Активируем анимацию
// постепенного появления:
await $('body').animate({ opacity: 1 }, 1000).promise();
// Снимаем блокировку с документа:
$('body').css('pointer-events', '');
}
}
}
pageUpdate();
$('.post-like').click(async function(){
var response = await $.ajax({
url: '/ajax/post_like.php',
type: 'POST',
dataType: 'json',
data: {
action: 'check',
post_id: $(this).parents('.item').attr('id')
}
});
if (response.already_vote == 1) {
alert('Еденица!');
} else {
alert('Не еденица!');
}
});
// Функция для преобразования объекта
// в строку формата x-www-form-urlencoded:
function httpBuildQuery(object_to_convert) {
var params = new URLSearchParams();
var paramsGenerator = function(parent_key, iterate_object) {
for (var current_key in iterate_object) {
if (typeof iterate_object[current_key] == 'string' || typeof iterate_object[current_key] == 'number') {
if (parent_key.length > 0) {
var property_path = parent_key + '[' + current_key + ']';
} else {
var property_path = current_key;
}
params.append(property_path, iterate_object[current_key]);
} else if (typeof iterate_object[current_key] == 'object') {
if (parent_key.length > 0) {
var property_path = parent_key + '[' + current_key + ']';
} else {
var property_path = current_key;
}
paramsGenerator(property_path, iterate_object[current_key]);
}
}
}
paramsGenerator('', object_to_convert);
return params.toString();
}
// Протестируем работу функции на примере:
var test_object = {
'raz' : 'Первое свойство',
'dva' : 'Второе свойство',
'tri' : {
'test' : 'Тест',
'proverka' : 'Проверка',
'massiv' : [
'aaa',
'bbb',
'ccc',
{
'lalala' : 'lololo',
'tratata' : 'trototo'
},
123,
345,
567
]
}
};
var send_string = httpBuildQuery(test_object);
var response = await (await fetch('/NewAdvert', {
method: 'POST',
headers: {
'Content-Type' : 'application/x-www-form-urlencoded'
},
body: send_string
})).text();
console.log(response);
async function dictionary(word) {
var response = await $.ajax({
type: "POST",
url: "php/post.php",
data: {'word':word},
dataType: 'json'
});
console.log('Получен ответ сервера:');
console.dir(response);
return response;
}
$(function() {
setInterval(function() {
$('.fotorama').fotorama();
}, 1000);
})