Домой Wp-Recall WP-Recall: Проблемы и решения 400 Bad Request при отправке данных через ajax
8ответ(ов) в теме
pro-ks.ru@yandex.ru
не в сети 2 года
На сайте с 14.10.2018
Участник
Тем 24
Сообщения 58
1
17:01
Версия WP-Recall: 16.24.38

Пытаюсь отправить данные формы по примеру

Вы не можете просматривать опубликованные ссылки

add_shortcode('rcl-form', 'my_rcl_form');
function my_rcl_form(){
    $fields = array(
        array(
            'type' => 'text',
            'slug' => 'field_one',
            'title' => __('Текстовое поле'),
            'placeholder' => __('Заполните это поле'),
            'required' => 1,
            'notice' => __('тут какое то примечание к полю')
        ),
        array(
            'type' => 'select',
            'slug' => 'field_two',
            'title' => __('Выпадающий список'),
            'values' => array(
                __('один'),
                __('два'),
                __('три')
            ),
            'notice' => __('выберите одно из значений')
        ),
        array(
            'type' => 'textarea',
            'slug' => 'field_three',
            'title' => __('Многострочное поле'),
            'placeholder' => __('Напишите хоть что то...'),
            'required' => 1,
            'notice' => __('еще одно примечание к текстовому полю')
        ),
        array(
            'type' => 'hidden',
            'slug' => 'my_form_submit',
            'value' => 1
        )
    );

    $form = rcl_get_form(array(
        'onclick' => 'rcl_send_form_data("my_form_save_data",this);return false;',
        'submit' => __('Сохранить'),
        'fields' => $fields
    ));

    return $form;
}


rcl_ajax_action('my_form_save_data');
function my_form_save_data(){
    
    rcl_verify_ajax_nonce();

    $formData = $_POST;
    
    //тут обрабатываем данные с формы
    //возможно, сохраняем их
    //а дальше перенаправляем пользователя на нужную страницу
    
    wp_send_json(array(
        'success' => __('Данные успешно обработаны!'),
        'dialog' => array( //закрываем диалоговое окно
            'close' => true
        )
    ));    
}

if(defined('DOING_AJAX') && DOING_AJAX){
    add_action('wp_ajax_my_form_save_data', 'my_form_save_data'); 
    add_action('wp_ajax_nopriv_my_form_save_data', 'my_form_save_data'); 
}

Сервер выдает 400 Bad Request

Вы не можете просматривать опубликованные ссылки

В чем может быть проблема, кроме кривых рук подскажите пожалуйста?

0
Preci
не в сети 2 месяца
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
2
17:56

Это не нужно писать

if(defined('DOING_AJAX') && DOING_AJAX){
    add_action('wp_ajax_my_form_save_data', 'my_form_save_data'); 
    add_action('wp_ajax_nopriv_my_form_save_data', 'my_form_save_data'); 
}

Это делается внутри

rcl_ajax_action('my_form_save_data')

Если нужно что бы и для гостей работало, то

rcl_ajax_action('my_form_save_data', true)

0
pro-ks.ru@yandex.ru
не в сети 2 года
На сайте с 14.10.2018
Участник
Тем 24
Сообщения 58
3
18:49

Я по всякому пробовал не так не эдак не работает, авторизован, или нет ошибка везде одна

Редакции сообщения
24.03.2021 18:49pro-ks.ru@yandex.ruПричина: не указано
0
Андрей CS
не в сети 13 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
4
20:02

какие именно данные отправляются и по какому адресу, проверьте через консоль браузера

0
pro-ks.ru@yandex.ru
не в сети 2 года
На сайте с 14.10.2018
Участник
Тем 24
Сообщения 58
5
23:18

Данные формы запрос

scheme	https
host	www.site.ru
filename	/wp-admin/admin-ajax.php

02:14:56.692 XHRPOST https://www.site.ru/wp-admin/admin-ajax.php
[HTTP/2 400 Bad Request 472ms]  	
    field_one	"54"
    field_two	"2"
    field_three	"5454"
    my_form_submit	"1"
    action	"my_form_save_data"
    ajax_nonce	"2321f250ab"
    1
    field_one=54&field_two=2&field_three=5454&my_form_submit=1&action=my_form_save_data&ajax_nonce=2321f250ab

HTTP/2 400 Bad Request
server: nginx
date: Wed, 24 Mar 2021 20:19:58 GMT
content-type: text/html; charset=UTF-8
content-length: 1
x-powered-by: PHP/7.4.16
access-control-allow-origin: https://www.site.ru
access-control-allow-credentials: true
x-robots-tag: noindex
x-content-type-options: nosniff
expires: Wed, 11 Jan 1984 05:00:00 GMT
cache-control: no-cache, must-revalidate, max-age=0
x-frame-options: SAMEORIGIN
referrer-policy: strict-origin-when-cross-origin
X-Firefox-Spdy: h2

02:14:56.692 XHRPOSThttps://www.site.ru/wp-admin/admin-ajax.php
[HTTP/2 400 Bad Request 472ms]

	
POST
	https://www.site.ru/wp-admin/admin-ajax.php
Состояние 400 Bad Request
ВерсияHTTP/2
Передано 511 б (размер 1 б)
Политика Referrerno-referrer-when-downgrade

    	
    access-control-allow-credentials
    	true
    access-control-allow-origin
    	https://www.site.ru
    cache-control
    	no-cache, must-revalidate, max-age=0
    content-length
    	1
    content-type
    	text/html; charset=UTF-8
    date
    	Wed, 24 Mar 2021 20:14:59 GMT
    expires
    	Wed, 11 Jan 1984 05:00:00 GMT
    referrer-policy
    	strict-origin-when-cross-origin
    server
    	nginx
    x-content-type-options
    	nosniff
    X-Firefox-Spdy
    	h2
    x-frame-options
    	SAMEORIGIN
    x-powered-by
    	PHP/7.4.16
    x-robots-tag
    	noindex
    	
    Accept
    	application/json, text/javascript, */*; q=0.01
    Accept-Encoding
    	gzip, deflate, br
    Accept-Language
    	ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
    Cache-Control
    	no-cache
    Connection
    	keep-alive
    Content-Length
    	105
    Content-Type
    	application/x-www-form-urlencoded; charset=UTF-8
    Cookie
    	wlsid=e11d67296477b31bd6d58b7c22cea230; rcl_extends=1; wordpress_da7aef1f8faef8d822f66f01c6d40486=admin%7C1616677330%7Ca6C7mwySn8DThcsP0DK5Ak1oo0itHu9Pb2jsXoGt8MW%7Cf2a6dc6a0fd3904335ee7de19c9ccc4bc3c46e6fb0910b0224d3ef160d37660b; wordpress_sec_8d07f1bc125d2cd167c04e5805b3f7f4=admin%7C1616766473%7C5NVNEcD9xrnRV9juoqGBBWyylee5lcpzX54K88ktybC%7C7e21e179368bc379097192a989f856934775a2c1cefa2c7c1260a18a295312b5; wlsid=a7100d0d8863bea4653d86cba389ec2b; rcl_chat_contact_panel=1; wp-settings-1=libraryContent%3Dbrow…D1%26editor%3Dtinymce; wp-settings-time-1=1616593681; wordpress_test_cookie=WP%20Cookie%20check; PHPSESSID=98925a2ae6ca54d2eda085e59ba7deae; wordpress_logged_in_da7aef1f8faef8d822f66f01c6d40486=admin%7C1616677330%7Ca6C7mwySn8DThcsP0DK5Ak1oo0itHu9Pb2jsXoGt8MW%7C3914050632d99bc712742c3c7674257192c48d115b68ff047d7838244967dc5f; wordpress_logged_in_8d07f1bc125d2cd167c04e5805b3f7f4=admin%7C1616766473%7C5NVNEcD9xrnRV9juoqGBBWyylee5lcpzX54K88ktybC%7C21cd2b797a405dc0bfcff3f4ae82004addbdc269e4530990e574d6f2a8a34a21
    DNT
    	1
    Host
    	www.site.ru
    Origin
    	https://www.site.ru
    Pragma
    	no-cache
    Referer
    	https://www.site.ru/
    TE
    	Trailers
    User-Agent
    	Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0
    X-Requested-With
    	XMLHttpRequest

Редакции сообщения
24.03.2021 23:21pro-ks.ru@yandex.ruПричина: не указано
24.03.2021 23:25pro-ks.ru@yandex.ruПричина: не указано
0
Андрей CS
не в сети 13 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
6
14:23

я не вижу каких то проблем

0
Preci
не в сети 2 месяца
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
7
17:44

У меня ваш код работает.

Ошибка такая обычно вылезает если не зарегистрирован обработчик для вызванного ajax запроса. Т.е. либо он недоступен для гостя, либо вы куда-то вставили код, где он не срабатывает - например файл не подключается при ajax.

1
pro-ks.ru@yandex.ru
не в сети 2 года
На сайте с 14.10.2018
Участник
Тем 24
Сообщения 58
8
19:54

в общем изначально я в дополнении создал дополнительный файл и подключил его в плагине через include_once 'new-form.php';, после того как код перенес с файла new-form.php в index.php код начал отрабатывать корректно. Всем спасибо.

Редакции сообщения
25.03.2021 19:54pro-ks.ru@yandex.ruПричина: не указано
0
Вы не имеете права на публикацию сообщений в этой теме