HTTP-Code 400-Fehler bei Verwendung von AJAX

onomat. Technische Antworten 14

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
Um die globale Benutzerregistrierung und -anmeldung zu erleichtern, haben wir die Funktion der telefonischen Anmeldung abgeschafft. Sollten Sie Probleme bei der Anmeldung haben, wenden Sie sich bitte an unseren Kundendienst, der Ihnen bei der Bindung Ihrer E-Mail-Adresse hilft.