亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

POST 方法在被請求時不斷發送 400 錯誤

POST 方法在被請求時不斷發送 400 錯誤

開心每一天1111 2023-05-16 14:21:57
我目前一直在使用 Flask 和 MongoDB 來試驗一個小型應用程序。我目前正在讓用戶獲取 MongoDB 集合中的所有法則,并通過將 JSON 發送到服務器,通過 POST 方法為 MongoDB 集合創建新法則。但是,下面的輸出顯示向 /post/law 發送 POST 請求將發出 400 錯誤。127.0.0.1 - - [12/Aug/2020 09:21:50] "GET / HTTP/1.1" 200 -127.0.0.1 - - [12/Aug/2020 09:21:50] "GET /laws HTTP/1.1" 200 -127.0.0.1 - - [12/Aug/2020 09:21:54] "POST /post/law HTTP/1.1" 400 -我對為什么會發生此錯誤感到有些困惑。我知道 400 錯誤通常與錯誤請求有關,但是,我不確定錯誤請求錯誤發生在哪里?# This handles the POST [email protected]('/post/law', methods = ["POST"])def post_law():    if request.is_json:        content = request.get_json()        print(content)客戶端:<!--This tries to send a request to /post/law--><h1>Submit a Law</h1><form action="", method="GET">    <div id="law_name_section">        <label>Name of the law:</label>        <input type="text" required id="law_name">    </div>    <div id="law_description_section">        <label>Description of the law:</label>        <input type="text" required id="law_description">    </div>    <div id="law_url_section">        <label>URL to the law:</label>        <input type="text" required id="law_url">    </div>    <input type="submit" value="Submit law" onclick="submitLaw()"></form><script>// submitLaw() tries to send a request to /post/law in a JSON request    async function submitLaw() {        let name = await document.getElementById('law_name').value         let description = await document.getElementById('law_description').value         let url = await document.getElementById('law_url').value        let options = {            method: "POST",            headers: { "Content-Type": "application/json" },            body: {                name: name,                description: description,                url: url,                status: "Bill"            }        }        let response = await fetch("http://127.0.01:8000/post/law", options)        if (response.ok) {            alert("Successfully sent data to /post/law")        } else {            alert(`Couldn't send data to /post/law`)        }    }</script>
查看完整描述

1 回答

?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

可能是因為您的視圖沒有返回響應。嘗試:


@app.route('/post/law', methods = ["POST"])

def post_law():

    if request.is_json:

        content = request.get_json()

        print(content)

    return "hello"

另外,您的網址格式不正確。應該:


 await fetch("http://127.0.0.1:8000/post/law", options)

而且,為什么所有的async電話?唯一應該異步的是你的fetch()


您也有 2 個submits發生。嘗試這個:


<!--This tries to send a request to /post/law-->

<h1>Submit a Law</h1>

<form action="", method="POST">

    <div id="law_name_section">

        <label>Name of the law:</label>

        <input type="text" required id="law_name">

    </div>

    <div id="law_description_section">

        <label>Description of the law:</label>

        <input type="text" required id="law_description">

    </div>

    <div id="law_url_section">

        <label>URL to the law:</label>

        <input type="text" required id="law_url">

    </div>

    <input type="button" value="Submit law" onclick="submitLaw();">

</form>


<script>

// submitLaw() tries to send a request to /post/law in a JSON request

    function submitLaw() {

        let name = document.getElementById('law_name').value;

        let description = document.getElementById('law_description').value; 

        let url = document.getElementById('law_url').value;


        let options = {

            method: "POST",

            headers: { "Content-Type": "application/json" },

            body: {

                name: name,

                description: description,

                url: url,

                status: "Bill"

            }

        }


        let response = await fetch("http://127.0.0.1:8000/post/law", options)


        if (response.ok) {

            alert("Successfully sent data to /post/law")

        } else {

            alert(`Couldn't send data to /post/law`)

        }

    }

</script>


查看完整回答
反對 回復 2023-05-16
  • 1 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號