@inefa
не до Front-End developer

Не приходят данные с POST ajax?

Отправляю данные с помощью AJAX с страницы index.php на mail.php
Обработчик показывет что данные отправляются успешно
5fdf6b5029dae518982200.png
захожу в network там указана страница которая нам нужна и данные успешно пошли
и видно что мое сообщение отправлено 5fdf6c176ab50615448223.png
захожу я на mail.php и там и выясняется что данные не приходили
5fdf6e87a6948788941488.png

код страницы mail.php
<?php 
if (isset($_POST['message']) && $_POST['message'] != "");
$name = $_POST['message'];
else die ("Не заполнено поле \"message\"");
?>


Код отправки AJAX запроса

let items = JSON.parse(localStorage.getItem('localSD'));

let sendToPhp = parseInt(items[0]);
$.ajax({
        url: "/wp-content/themes/lk/pages/mail.php",
        method: 'post',
        data: {
            message: sendToPhp
        },
        success: function () {
            console.log('succsess');
        }
    });


никак не могу понять почему данные не выводятся
  • Вопрос задан
  • 493 просмотра
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Внутри файла mail.php вы должны не просто принять файл, а записать принятые данные куда-нибудь, чтобы потом их можно было посмотреть. Например, вы можете записывать полученные данные в текстовый файл - для этого разместите внутри mail.php следующее содержимое:
<?php

header('Access-Control-Allow-Origin: *'); // Разрешаем запросы с любых сайтов
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);

// В переменную $received пишем нужную нам информацию:

$received = "Последний принятый POST-запрос содержал следующие данные:\n\n" . print_r($_POST, true);

// Сохраняем содержимое переменной $received в файл post.txt и результат операции записываем в переменную $save (сохранилось или нет):

$save = file_put_contents('post.txt', $received);

// Если файл сохранить не удалось выводим соответствующее предупреждение:

if ($save === false) {
	
	echo 'Ошибка, не удалось записать информацию в файл post.txt';
	
}

// Если же все сохранилось успешно выводим уведомление об этом:

else {
	
	echo 'Данные успешно сохранены в файле post.txt';
	
}


Ну и справедливости ради POST-запрос вы отправляйте криво. Оно конечно и так будет работать, но с вашим кодом вы не увидите ответа сервера, поэтому надо делать так:
$.ajax({
	url: '/wp-content/themes/lk/pages/mail.php',
	method: 'POST',
	cache: false,
	data: { 'message' : 'Привет мир!' },
	success: function(response) {
		console.log('Запрос успешно отправлен. Ответ сервера:');
		console.dir(response);
	},
	error: function(err) {
		console.log('При отправке запроса произошла ошибка, детали:');
		console.dir(err);
	}
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы