01
Янв
2018

Не приходят данные с формы , ошибка Request header field Content-Type is not allowed by Access-Control-Allow-Headers

Изначально была ошибка: введите сюда описание изображения

Я ее исправил сначала добавив в Acess-Control....:'*' , отправил данные с формы но ,что в $_REQUEST , что в $_POST пусто. Дальше я попробовал сменить header на Origin, X-Requested-With, Content-Type, Accept, Authorization , все тоже самое ошибки нет, но $_POST $_REQUEST снова пустые. Как мне решить эту проблему? Вот сам обработчик:

<?

header('Content-type: json');
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");


$theme = trim(htmlspecialchars($_POST["THEME"]));
$tel = trim(htmlspecialchars($_POST["TEL"]));
$email = trim(htmlspecialchars($_POST["EMAIL"]));
$msg = trim(htmlspecialchars($_POST["MESSAGE"]));
if ($_REQUEST["THEME"] == 'Не выбрано' || $_REQUEST["TEL"] == '' || $_REQUEST["EMAIL"] == '') {

    echo json_encode(
        array(
            "STATUS" => 'ERROR!',
            "REQ" => $_REQUEST
        )
    );
    die();


} else {

    $to = '[email protected]';
    $sub = 'Вопрос юристу';
    $fields = array($theme, $email, $msg);
    mail($to, $sub, 'Нужна помощь', $fields);
    echo json_encode(
        array(
            "THEME" => $theme,
            "TEL" => $tel,
            "EMAIL" => $email,
            "MESSAGE" => $msg,
            "STATUS" => 'OK',
            "REQ" => $_REQUEST


        )
    );
    die();


}

Вот ajax:

 ajaxFunc() {

    let form = document.querySelector('#order-jurist');
    let data = serialize(form, {hash: true});
    axios({

        method: 'post',
        url: 'http://военгарант.рф/api/jurist-order.php',
        data: data,

    })
        .then(res => {


            // console.log('ok');
            console.log(res);
            // console.log(item);


        })
        .catch(function (er) {

            console.log('error');
            console.log(er);
        });
    console.log(data);

}

Вот ответ от сервера: введите сюда описание изображения

введите сюда описание изображения

file_get_contents("php://input"): введите сюда описание изображения

введите сюда описание изображения

Источник: https://ru.stackoverflow.com/questions/765482/%D0%9D%D0%B5-%D0%BF%D1%80%D0%B8%D1%85%D0%BE%D0%B4%D1%8F%D1%82-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5-%D1%81-%D1%84%D0%BE%D1%80%D0%BC%D1%8B-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-request-header-field-content-type-is-not-all

Тебе может это понравится...

Добавить комментарий