Метод jQuery $ .post приводит к ошибке 405 (не разрешено) - PullRequest
0 голосов
/ 05 января 2019

У меня есть веб-сайт, обслуживаемый с помощью Nginx. Я создал очень простую веб-страницу с тегом p для отображения содержимого файла test.html. У меня есть две кнопки: одна выполняет запрос GET с использованием $ .ajax, а другая выполняет запрос POST с использованием $ .post.

GET-запрос работает нормально, и содержимое файла test.html отображается в моем теге p. Однако, когда я пытаюсь POST к этому же файлу, я получаю сообщение об ошибке в консоли: «Не удалось загрузить ресурс: сервер ответил со статусом 405 (не разрешено)». Запрос POST довольно прост, взят из примера на W3Schools.com - https://www.w3schools.com/JQuery/jquery_ajax_get_post.asp. Так что я озадачен.

Я пытался прочитать и понять, что может означать ошибка 405. Предположительно это означает, что запрос POST не поддерживается этим URL. Но как я позволю этому быть поддержанным?

    <p id="content-from-ajax"></p>

    <button id="get-content-btn">Get Content</button>

    <button id="post-something-btn">Post something</button>

    <script type="text/javascript">
        $("#get-content-btn").click(function() {
            $.ajax({type: "GET", 
                    url: "test.html", 
                    success: function(result) {
                        $("#content-from-ajax").html(result);
                        alert("GET successful");
                    }
                   });
        });

        $("#post-something-btn").click(function(){
            alert("GRRRR");
            $.post("test.html",
                   {
                name: "Donald Duck",
                city: "Duckburg"
            },
                   function(data, status){
                alert("something worked");
            });
        });
    </script>

1 Ответ

0 голосов
/ 05 января 2019

Для запроса POST для доступа к ресурсам, размещенным на вашем веб-сервере, вам потребуется сервер приложений. Примеры включают Laravel для PHP, Spring для Java и Node для JavaScript.

Многие серверы приложений требуют, чтобы вы явно указывали, какой тип запроса может получать конкретная конечная точка, что может сбивать с толку при изучении новой структуры веб-приложения, поскольку запрос GET часто используется по умолчанию.

Хотя POST-запрос должен обрабатываться сервером приложений, он не обязательно должен быть вашим хостингом. Таким образом, вы можете получить доступ к общедоступным API с помощью запроса POST (в зависимости от API и конечной точки, которую вы используете), не размещая свой сайт на сервере приложений. Так что, если этот проект носит исключительно образовательный характер, это лучший способ протестировать POST-запрос без необходимости его настройки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...