Неверный запрос 400. Как должны выглядеть jQuery Ajax data serialize () или json? - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь отправить форму через jquery ajax.У меня это:

JS:

$('#form-pm').on('submit',function(e) {

        e.preventDefault();

        var formData = $('#form-pm').serialize();
        var ajaxRequest =
        $.ajax({
            url: //my valid url,
            dataType: 'json',
            contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
            type: 'post',
            data: formData    
        });

        ajaxRequest.done(function(data) { console.log(data); });
        ajaxRequest.fail(function(jqXHR) { alert('You are fail. ' + jqXHR); });

    });

ОБНОВЛЕНИЕ: JS теперь выглядит так:

var formData = $('#form-pm').serialize();

        var ajaxRequest =
        $.ajax({
            url: admin_ajax.ajax_url,
            type: 'post',
            data: formData

        });

        ajaxRequest.done(function(data) { console.log(data); });
        ajaxRequest.fail(function(jqXHR) { alert('You are fail. ' + jqXHR); });
        e.preventDefault();

400 Плохой запрос пропал, но моя функция send_message получает пустые параметры.Согласно error.log, это send_message('',NULL,NULL)

PHP:

function send_message($projectid, $userid, $message) {
    //do stuff
}

<form id="form-pm" method="post" enctype="multipart/form-data" action="">
    <textarea name="message" rows=3 id="project-message"></textarea>

    <input type="submit" name="send" value="send message">

    <input id="userid" type="hidden" name="userid" value="<?php echo $userid; ?>">
    <input id="projectid" type="hidden" name="projectid" value="<?php echo $projectid; ?>">
    <input id="userid" type="hidden" name="action" value="send_message">

</form>

Я получаю POST 400 Bad Request.Я знаю, что data вызывает проблемы.Как публикация ожидает, что data будет выглядеть?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...