当前位置: 首页 > 面试题库 >

Ajax GET请求不适用于Flask

姬振濂
2023-03-14
问题内容

我从html中接收来自用户的一堆输入,然后将其传递给ajax查询以获取响应。

$.ajax({
  url:"http://0.0.0.0:8080/getReport",
  type:"GET",
  data:JSON.stringify(out),
  dataType:"json",
  contentType:"application/json"
})

这是满足上述要求的Flask代码。

@app.route('/getReport', methods=['GET'])
def report():
    return Response('this is a sample response')

上面的方法无法通过get找到到“报告”的路线。但是,它可以在POST请求中找到它。

这是我得到的日志

  127.0.0.1 - - [25/Apr/2016 13:00:03] "GET /getReport?{%22insertion_id%22:%22%22,%22start%22:%22%22,%22end%22:%22%22} HTTP/1.1" 400 -

错误的请求..我在这里做错了什么?


问题答案:

GET请求没有contentType (*),并且不是JSON编码的,而是URL编码的(普通,常规键值对)。

这意味着您可以简单地使用jQuery的默认值。

$.get("http://0.0.0.0:8080/getReport", out).done(function (data) {
    // request finished
});

这将导致如下请求:

GET /getReport?insertion_id=&start=&end= HTTP/1.1

服务器将很容易理解这一点。

(*)这是因为Content-Type标头确定了请求正文的类型。GET请求没有请求正文。



 类似资料:
  • 关于redash,我有一个问题。这是请求。在上,它工作得很好。查询示例: 但在axios上,它抛出: 网络错误 并在控制台上写: 访问XMLHttpRequest at

  • 问题内容: 我尝试像这样在python中使用https代理: 是从文件读取的代理,格式为ip:port。我在浏览器中检查了这个https代理,它可以工作。但是在python中,此代码挂起了几秒钟,然后出现异常: 我尝试使用socks5代理,它适用于安装了PySocks的socks5代理。但是对于https我有这个例外,有人可以帮我吗 问题答案: 为指定代理列表时,密钥是协议,值是domain /

  • 我正在尝试将angular2应用程序与rails api连接起来。 为了使用rails身份验证,我希望能够在两个域之间共享cookies。当我在angular应用程序中调用http GET时,我会返回一个带有预期设置cookie字段的响应,当我发送下一个GET请求时,cookie也会随之发送。然而,当我将第二个GET替换为一个POST时,它不是。对于两个调用,我都使用withCredentials

  • 当我使用POST方法向我的服务器发出多部分请求时,请求工作正常。 下面是我如何设置我的JMeter: 发帖请求 然而,当我试图向同一个URL发出PUT请求时,该请求不起作用。 提交请求 服务器上的错误是 org.springframework.web.multipart.MultipartException:当前请求不是多部分请求 这似乎是JMeter上的一个问题,因为当我尝试使用Postman执

  • 问题内容: 我正在使用NodeJS 请求-简化的HTTP客户端 我似乎在使用HTTPS网站时遇到问题,但没有得到结果。 在Postman上测试了API端点(我不能共享),我只是关闭了SSL,它起作用了,我该如何使用请求插件做同样的事情? 问题答案: 只需添加以下行: 因此,您的代码如下所示:

  • 问题内容: 我正在尝试在python中使用基本身份验证 响应表单 auth 变量: 但是,当我尝试从其他位置获取数据时-我收到401错误 据我了解-在第二个请求中不是替换的会话参数。 问题答案: 您需要使用会话对象,并向 每个请求 发送身份验证。该会话还将为您跟踪Cookie: