Рейтинг:0

Метод публикации jQuery AJAX выдает ошибку 405 (метод не разрешен)

флаг cn

Я новичок в AJAX и недавно изучал функции методов jQuery get() и post(). В то время как метод get() работал гладко, я запнулся, когда наткнулся на метод post(), который выдает ошибку: «405 (метод не разрешен)» каждый раз, когда я пытаюсь его вызвать.

Используя Bootstrap, у меня есть простой файл HTML с именем get_post.html, в каждом из которых есть элементы div, абзац и кнопка. Используя jQuery, в событии нажатия кнопки я отправляю имя и местоположение с помощью метода post() в файл php с именем mypost.php, который будет обрабатывать данные и отправлять строку сообщения обратно в get_post.html. Я хочу показать окончательное сообщение в элементе абзаца get_post.html. Пытаясь добиться этого, каждый раз, когда я нажимаю кнопку, консоль браузера показывает сообщение об ошибке, упомянутое выше. Предполагая, что проблема каким-то образом связана с политикой CORS, я должен упомянуть, что файлы get_post.html и mypost.php находятся в одной папке в одном домене. Так почему же это ошибка, связанная с политикой CORS? Более того, я использую локальный хост http-сервера Node.js для запуска файла get_post.html. Следовательно, любая проблема, связанная с локальным хостом, также маловероятна. Кроме того, я включал и отключал CORS во время работы http-сервера, но безрезультатно. Я также пытался использовать IIS, но и там возникает та же проблема.

Итак, что может быть причиной ошибки и как я могу избавиться от нее? Поскольку я новичок в AJAX, я не очень привык к его тонкостям. Большинство онлайн-решений не имеют отношения к моему сценарию; поэтому я не мог получить от них большой помощи. Пожалуйста, помогите разобраться с этим, если возможно, с примером базового уровня.

код get_post.html:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <!-- Latest compiled and minified CSS -->
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">

        <!-- jQuery library -->
        <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.js"></script>

        <!-- Popper JS -->
        <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js"></script>

        <!-- Latest compiled JavaScript -->
        <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>

        <title>Document</title>
    </head>
    <body>
        <div class="container">
            <p id="loadedData">This is where data will be loaded from server dynamically.</p>
            <button class="btnLoad btn btn-primary">Load Data</button>
        </div>
        <script type="text/javascript">
             $(document).ready(function() {
                $(".btnLoad").click(function() {
                    // Fetching data using post() method.
                    $.post("mypost.php", {
                        name: "Firstname Lastname",
                        location: "Countryname"
                    }, function(data, status) {
                        $("#loadedData").html(data);
                        alert(status);
                    });
                });
             });
        </script>
    </body>
</html>

код mypost.php:

<?php
    $name = $_POST["name"];
    $location = $_POST["location"];

    echo "This is ".$name.". I'm from ".$location".";
?>

С уважением!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.