当前位置: 首页 > 知识库问答 >
问题:

对Python Flask的AJAX Post请求[副本]

管峻
2023-03-14

试图理解如何将post请求发送到我的后端(flask)。

在我的HTML中,我有3个复选框和一个提交按钮。我的submit按钮返回一个javascript数组,我正在尝试将该javascript数组发送到apiendpoint'api/regions',您可以在下面看到。

$(document).ready(function() {
    $("#loadData").click(getChecked);
});
function getChecked() {
    event.preventDefault();
    var checkboxes = $(".form-check input[type=checkbox]:checked");
    //toArray: convert checkboxes object to javascript array
    var labels = checkboxes.toArray().map(checkbox => checkbox.value);

    $.ajax({
        url: 'api/regions',
        type: "POST",
        data: JSON.stringify(labels),
        processData: false,
        contentType: "application/json; charset=UTF-8",
        success: function(response) {
            console.log(response);
        },
        error: function(error) {
            console.log(error);
        }
    });
}

在我的app.py中,我有一个endpointAPI的路由:

@app.route('/api/regions', methods=['POST'])
def regions():
    regions = request.json
    with open("C:\\test.txt", 'w') as f:
        f.write(regions)

if __name__ == "__main__":
    app.run(debug=True)
regions = request.json 

归档。“C:\test.txt”

当我尝试这样做的时候,我得到的错误是500,这并没有给我很多工作。我不确定我所缺少的是前端还是后端,所以希望有人能指出我哪里出了问题。

共有1个答案

翟源
2023-03-14

从烧瓶文档中,

如果mimetype是application/JSON,那么它将包含解析的JSON数据。否则,这将是none

关键在于.JSON是解析的JSON数据,而不是原始字符串。如果要将其写入文件,则需要首先将其转换回字符串,可能使用json.dumps():

with open("C:\\test.txt", 'w') as f:
    f.write(json.dumps(regions))
 类似资料:
  • XMLHttpRequest无法加载http://localhost:6010/gettweets。请求的资源上没有“访问-控制-允许-来源”标头。因此,不允许访问源'http://localhost:4200'。error_handler.js:54异常:URL:null的状态为0的响应

  • 我有管理体育锦标赛的项目。它是用PHP/Laravel编写的。我需要在锦标赛运行时,在网页上异步发布比赛结果(“在线”)。我无法决定哪种交流方式更适合我的情况。定期的ajax请求(例如每10秒1个请求)还是WebSockets?你能给我个建议吗?你能不能也提一下这两种方法的利弊?

  • 当前的请求对象由think\Request类负责,在很多场合下并不需要实例化调用,通常使用依赖注入即可。在其它场合(例如模板输出等)则可以使用think\facade\Request静态类操作。 [TOC=2,3] 请求对象调用 在控制器中通常情况下有两种方式进行依赖注入。 构造方法注入 <?php namespace app\index\controller; use think\Reque

  • 我知道如果我想发送HTTP请求,我可以在发送之前将其形成字典: 它是否也起到了相反的作用?如果我的请求碰巧将我重定向到另一个URL,我可以看到重定向到的位置: 但如果该URL恰好是这样的: 我碰巧想从这个URL(字符串3451)中提取vartwo,请求模块是否提供了简单的方法,只需指定我想要“vartwo”的值就可以做到这一点?另一个字典,或者某种映射对象?或者,我唯一的选择是使用urllib.u

  • 我需要计算我的原始HTTP post请求的散列,并将其与Java中相同的头中的签名散列进行比较。问题是,我尝试了多种方法,但无法提取发送的准确POST请求。随函附上请求: 我需要完全相同的字符串(连同所有的%和其他符号),因为即使是一个单独的空格差会生成一个不正确的散列。我们可以在这里使用自定义过滤器吗?如果可以,那么具体如何使用?

  • 我的java代码 这是我得到的错误:08-19 09:58:35.690:W/System。err(737):SoapFault-faultcode:“SOAP-ENV:Server”faultstring:“3001:未知用户试图执行消息类型UserAuthenticationRequest。需要身份验证。”faultactor:“null”详细信息:org。kxml2.kdom。Node@40