Wordpress ajax возвращает ошибку 404

Я хочу разработать плагин для Wordpress. Итак, я хочу вызывать функцию Ajax, когда нажимаю кнопку в моем php-коде.

Это мой код php:

function unilang_translation_page() {

            echo '<div class="wrap"><h1>Translations of strings</h1> </div>'; 

            $unilang_table_strings = new Unilang_Table_Strings;
            $unilang_table_strings->prepare_items(); 
            $unilang_table_strings->display();

            $_SESSION['store_table_strings'] = serialize( $unilang_table_strings );

            echo "<a type='button' class=\"button button-primary\" onClick=\"Utility.saveStringTranslations();\">Submit Changes</a>";
} 

А это мой файл javascript:

var Utility = {

    saveStringTranslations: function() {
        $.ajax({
            type: "POST",
            url: "/unilang/php/unilang-save-string-translations.php",
            success: function(data) {
                alert(data);
            },
            error: function(error) {
                alert(error);
            }
        })
    }
}

Когда я нажимаю на кнопку, консоль браузера возвращает следующее: enter image description here

Я попытался изменить путь, но это не сработало. Как я могу указать путь к моему плагину в URL-адресе?

Что произойдет, если вы откроете этот URL в своем браузере?

Reinstate Monica Cellio 10.08.2018 17:05

Вы это уже читали? AJAX в плагинах - WordPress Codex.

cabrerahector 10.08.2018 18:37
0
2
89
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте объявить переменную JavaScript в файле PHP вашего плагина, как показано ниже

<script> var plugin_url = '<?php echo plugins_url( '/unilang/php/unilang-save-string-translations.php', __FILE__ ) ?>'; </script>

и вызовите переменную plugin_url в пути URL AJAX - url: plugin_url + "/unilang/php/unilang-save-string-translations.php".

Надеюсь, это поможет, и вы можете прочитать больше здесь - https://codex.wordpress.org/Function_Reference/plugins_url.

Возможно, это сработает. Однако, когда вы пытаетесь выполнить запрос AJAX в WordPress, вам необходимо использовать следующие действия: wp_ajax_nopriv и wp_ajax. И отправляйте запросы только на admin-ajax.php. Отправка запросов к пользовательским файлам php небезопасна.

Ivnhal 10.08.2018 18:22

@Outsource WordPress работает! Но теперь консоль возвращает это: «POST, 500 Internal server error».

Matteo Serpentoni 16.08.2018 15:48

Можете ли вы проверить журнал ошибок вашего сервера и сообщить мне об ошибке?

Outsource WordPress 16.08.2018 17:24

Другие вопросы по теме