首页 > 解决方案 > Python Flask ajax POST 400 BAD REQUEST

问题描述

我正在尝试使用 ajax 将数据从表单发送到 Python Flask。我不希望页面重新加载。当我尝试发送表单时出现错误 POST http://127.0.0.1:5000/addTran 400 (BAD REQUEST)

我只想输入一个带有英文翻译的俄语单词,然后将其从烧瓶中写入文件。这是我的 html 和 JavaScript

<form id="translationForm">
  <label for="russianWord">Russian Word:</label><br>
  <input type="text" id="russianWord" serialize-as="russianWord" name="russianWord"><br>
  <label for="englishWord">English word:</label><br>
  <input type="text" id="englishWord" serialize-as="englishWord" name="englishWord">
  <input type="submit" value="Submit">
</form>

<script>
    $(function () {
        $('#translationForm').on('submit',function (e) {

              $.ajax({
                type: 'POST',
                url: "{{url_for('addTran')}}",
                data: $('#translationForm').serialize(),
                contentType: "application/j-son;charset=UTF-8",
                dataType: "json",
                success: function () {
                 alert("It worked!");
                }
              });
          e.preventDefault();
        });
    });

这是我的 Python 路线

@app.route('/addTran',methods=["POST"])
def addTran():
    if request.method == "POST":
        tran = request.get_json(force=True)
        with open('/home/matt/Desktop/info.txt','w') as w:
            w.write(str(tran))

标签: pythonajaxflaskrequest

解决方案


添加 JSON.stringify() 有效! data: JSON.stringify($('#translationForm').serialize())


推荐阅读