簡體   English   中英

jQuery $ .post方法導致405(不允許)錯誤

[英]jQuery $.post method results in 405 (Not Allowed) error

我有一個使用Nginx服務的網站。 我用ap標簽創建了一個非常簡單的網頁,以顯示文件test.html的內容。 我有兩個按鈕,一個按鈕使用$ .ajax進行GET請求,另一個按鈕使用$ .post進行POST請求。

GET請求工作正常,文件test.html的內容顯示在我的p標簽中。 但是,當我嘗試POST到同一文件時,控制台中出現錯誤:“無法加載資源:服務器響應狀態為405(不允許)。” POST請求很簡單,從W3Schools.com的例子右邊線- https://www.w3schools.com/JQuery/jquery_ajax_get_post.asp 所以我感到困惑。

我試圖閱讀並理解405錯誤可能意味着什么。 大概意味着這URL不支持POST請求。 但是如何使它得到支持?

    <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>

對於POST請求以訪問Web服務器上托管的資源,您將需要一個應用程序服務器。 示例包括PHP的Laravel,Java的Spring和JavaScript的Node。

許多應用程序服務器要求您明確指定特定端點可以接收的請求類型,這在學習新的Web應用程序框架時可能會造成混淆,因為GET請求通常是默認請求。

盡管POST請求必須由應用程序服務器處理,但並不一定要成為您的托管服務器。 因此,您可以通過POST請求訪問公共API(取決於您使用的API和端點),而無需在應用程序服務器上托管站點。 因此,如果這個項目純粹是教育性的,那么這是使用POST請求進行測試的最佳方法,而無需麻煩自己進行配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM