HTTP-Code 400-Fehler bei Verwendung von AJAX

onomat. Technische Antworten 23

Mein Plugin enthält eine Funktion, die aufgerufen wird, um die Plugin-Seite zu erstellen. Sie fordert 3 Eingabeparameter vom Benutzer über ein modales Standard-JS-Fenster an, hat aber Probleme bei der Übertragung der Parameter an den Server. Ich sende die AJAX-Parameter über eine Anfrage und erstelle den AJAX-Anfragehalter auf der Serverseite. Ich weiß nicht mehr, was der Fehler sein könnte. Bitte helfen Sie, wenn Sie wissen, was Sie tun.

//Выводим страницу с урезанной кнопкой установки

function ai_parser_non_sudo_install_python_page() {

  //Обработка POST запроса через AJAX

  add_action('wp_ajax_python_install', function () {

    //Если AJAX запрос получен верно

    if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_ WITH']) === 'xmlhttprequest') {

      //Если пользователь вторизован

      if (is_user_logged_in()) {

        //Получаем параметры формы

        $docker_access_method = isset($_POST['docker_access_method']) ? $_POST['docker_access_method'] : ";

        $docker_password = isset($_POST['docker_password']) ? $_POST['docker_password'] : ";

        versuchen {

          //Выполняем установку Docker с помощью функции ai_parser_non_sudo_install_python()

          $result = ai_parser_non_sudo_install_python($docker_password, $docker_access_method);

          // Отправляем ответ AJAX с сообщением об успешной обработке запроса и результатом установки

          wp_send_json_success(array(

            message' => 'Docker-Installationsanfrage erfolgreich verarbeitet',

            'python' => $result

          ));

          //Запоминаем результат функции в сессии

          $_SESSION['python_install_result'] = $result;

        } catch (Exception $e) {

          //Записываем сообщение об ошибке в журнал

          error_log("Fehler bei der Docker-Installation: " . $e->getMessage());

          //Отправляем ответ AJAX с сообщением об ошибке

          wp_send_json_error('Die Installation von Docker ist fehlgeschlagen, bitte prüfen Sie die Protokolle für weitere Details.');

          //Запоминаем сообщение об ошибке в сессии

          $_SESSION['python_install_result'] = 'Failed to install Docker: ' . $e->getMessage();

        }

      } sonst {

        //Возвращаем ошибку

        wp_send_json_error('Nicht autorisiert');

        //Запоминаем результат функции

        $_SESSION['python_install_result'] = "Ошибка при запуске установки Python: Вы не авторизованы! ";

      }

    } sonst {

      //Возвращаем ошибку

      wp_send_json_error('Keine AJAX-Anfrage');

      //Запоминаем результат функции

      $_SESSION['python_install_result'] = "Ошибка при запуске установки Python: AJAX запрос не распознан ";.

    }

    Ausgang;

  });

  //Диалог с пользователем

  ? >

    //Холдеры ответов пользователя

    let dockerPassword = null;

    let dockerAccessMethod = null;

    //Функция отправки параметров

    function sendFormData(accessMethod, dockerPassword) {

      //Создаем объект XMLHttpRequest

      const xhr = new XMLHttpRequest();

      //Устанавливаем URL сервера

      xhr.open("POST", "", true);

      //Устанавливаем заголовок для типа контента

      xhr.setRequestHeader("Content-Type", "application/json");

      //Отправляем запрос

      xhr.send(JSON.stringify({

        Aktion": "python_install",

        accessMethod': accessMethod,

        dockerPasswort": dockerPasswort

      }));

      //Обработчик события для успешного ответа

      xhr.onload = function() {

        if (xhr.status >= 200 && xhr.status < 400) {

          //Обработка ответа сервера

          const response = JSON.parse(xhr.response);

          console.log([${xhr.status}] Serverantwort: ${response} (Englisch):

        } sonst {

          //Fehler zurückgeben

          console.error( [${xhr.status}] Fehler: ${xhr.statusText});

        }

      };

      //Rückgabe der Ergebnisse

      xhr.onerror = function() {

        //Rückgabe der Ergebnisse

        console.error("[Fehler] Daten können nicht gesendet werden");;

      };

    }

    // Implementierung mehrerer Komponenten

    document.addEventListener('DOMContentLoaded', function() { // Setzen der Docker-Komponente new Promise((resolve, rejection) => { setTimeout(() => { // Den Komponententyp der Docker-Komponente auf JavaScript setzen new Promise((resolve, rejection) => { setTimeout(() => { // Den Komponententyp der Docker-Komponente auf JavaScript setzen new Promise((resolve, rejection) => { setTimeout(() => { // Setzen Sie den Komponententyp der Docker-Komponente auf JavaScript new Promise((resolve, rejection) => { setTimeout(() => { // Setzen Sie den Komponententyp der Komponententyps der Docker-Komponente auf JavaScript new Promise((resolve

      , Ablehnung) => { setTimeout(() => { Docker const useDocker = confirmed('Möchten Sie Docker verwenden?'); resolve(useDocker); }, 0); }) . then((useDocker) => { if (useDocker) { // Abrufen der Informationen von Docker return new Promise((resolve, rejection) => { setTimeout(() => { // Auflösen des Passworts von Docker dockerPassword = prompt('Resolve the password from Docker or it will fail', "); // Resolve the password from Docker if (dockerPassword ! == null) { resolve(dockerPassword); } else { rejection(null); } }, 0); }); } else { //Rückmeldung von Docker return Promise.reject('Docker isn t in use '); } }) .then((password) => { // Methoden, die den Docker-Dienst verwenden return new Promise((resolve, rejection) => { setTimeout(() => { // Methoden, die die Docker Dienstmethode dockerAccessMethod = prompt('Melden Sie sich beim Docker-Dienst an. (Name: ssh localhost - p222)', "); // Definieren Sie eine gültige Methode if (dockerAccessMethod ! == null) { resolve(dockerAccessMethod); } else { rejection(null); } }, 0); }); }) .then((accessMethod) => { //Execute sendFormData(accessMethod, dockerPassword); }) .catch((error) => { //Ausführen von sendFormData(null, null); }); }); <?php copy code

  • Kommentarliste ist leer

Kontakt

020-2206-9892

QQ咨询:1025174874

E-Mail: info@361sale.com

Arbeitszeiten: Montag bis Freitag, 9:30-18:30 Uhr, Feiertage frei

Kundendienst WeChat