AJAX使用時のHTTPコード400エラー

私のプラグインには、プラグインページを作成するために呼び出される関数が含まれています。この関数は標準的なJSモーダルウィンドウを介してユーザーに3つの入力パラメータを要求しますが、パラメータをサーバーに転送する際に問題が発生します。リクエストでAJAXパラメータを送信し、サーバー側でAJAXリクエストホルダーを作成しています。エラーが何なのかわからなくなってしまいました。ご存知の方がいらっしゃいましたら教えてください。

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

関数 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'] : ";

        を試す。

          //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 installation request processed successfully'、

            'python' => $result

          ));

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

          $_SESSION['python_install_result'] = $result;

        } catch (例外 $e) {.

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

          error_log("Error during Docker installation: " . $e->getMessage());

          //AJAX の使用方法について説明します。

          wp_send_json_error('Dockerのインストールに失敗しました。 詳細はログを確認してください。');

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

          $_SESSION['python_install_result'] = 'Dockerのインストールに失敗しました: ' . $e->getMessage();

        }

      } else {

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

        wp_send_json_error('Unauthorised');

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

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

      }

    } else {

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

      wp_send_json_error('AJAXリクエストではありません');

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

      $_SESSION['python_install_result'] = "Python: AJAX をインストールする。";.

    }

    退場する;

  });

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

  ?><スクリプト

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

    dockerPassword = null;

    dockerAccessMethod = null;

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

    関数sendFormData(accessMethod, dockerPassword) { {.

      //XMLHttpRequest

      const xhr = new XMLHttpRequest();

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

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

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

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

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

      xhr.send(JSON.stringify({)

        'action': 'python_install'、

        'accessMethod': アクセスメソッド、

        'dockerPassword': dockerPassword

      }));

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

      xhr.onload = function() { {」です。

        if (xhr.status >= 200 && xhr.status < 400) { とする。

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

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

          console.log([${xhr.status}] Server response: ${response}(英語):

        } else {

          //エラーを返す

          console.error( [${xhr.status}] エラー: ${xhr.statusText});

        }

      };

      //結果を返す

      xhr.onerror = function() { { { xhr.onerror = function() { { { xhr.onerror = function()

        //結果を返す

        console.error("[エラー] データの送信に失敗しました");;

      };

    }

    // 複数のコンポーネントを実装する

    document.addEventListener('DOMContentLoaded', function() { // Dockerコンポーネントを設定する new Promise((resolve, rejection) => {setTimeout(() => { // DockerコンポーネントのコンポーネントタイプをJavaScriptに設定します new Promise((resolve, rejection) => { setTimeout(() => { // DockerコンポーネントのコンポーネントタイプをJavaScriptに設定します newPromise((resolve, rejection) => { setTimeout(() => { // DockerコンポーネントのコンポーネントタイプをJavaScriptに設定 new Promise((resolve, rejection) => { setTimeout(() => { // DockerコンポーネントのコンポーネントタイプをJavaScriptに設定する。DockerコンポーネントのコンポーネントタイプをJavaScriptに設定する new Promise((resolve

      rejection) => { setTimeout(() => { Docker const useDocker = confirmed('Do you want to use Docker?'); resolve(useDocker); }, 0); }) .then((useDocker) => { if (useDocker) { // Dockerから情報を得る return new Promise((resolve, rejection) => { setTimeout(() => { // Dockerからパスワードを解決するdockerPassword = prompt('Resolve the password from Docker or it will fail', "); // Dockerからパスワードを解決 if (dockerPassword ! == null) { resolve(dockerPassword); } else { rejection(null); } }, 0); }); } else { /Dockerからのフィードバック return Promise.reject('Docker isn't in use '); } // Dockerからパスワードを解決する。't in use '); } }) .then((password) => { // Dockerサービスを使用するメソッド return new Promise((resolve, rejection) => { setTimeout(() => { // Dockerサービスメソッドを使用するメソッドサービスメソッドを使用するメソッド dockerAccessMethod = prompt('Dockerサービスにログインします。(Name: ssh localhost - p222)', "); // 有効なメソッドを定義する if (dockerAccessMethod !== null) { resolve(dockerAccessMethod); } else { rejection(null); } } }, 0); }) .then((accessMethod) => { //実行 sendFormData(accessMethod、dockerPassword); }) .catch((error) => { //execute sendFormData(null, null); }); }); <?php copy code

コメント

コメントを追加
  • コメントリストは空です

お問い合わせ

020-2206-9892

QQ咨询:1025174874

Eメール:info@361sale.com

勤務時間:月~金、9:30~18:30、祝日休み

カスタマーサービス WeChat
グローバルユーザー登録およびログインを容易にするため、電話によるログイン機能を停止いたしました。ログインに問題が発生した場合は、カスタマーサービスまでご連絡ください。