Javascript 烧瓶罐';t在ajax GET请求中处理json数据

Javascript 烧瓶罐';t在ajax GET请求中处理json数据,javascript,python,jquery,flask,Javascript,Python,Jquery,Flask,我尝试将jQuery AJAX请求发送到我的flask服务器: $.ajax({ type: 'GET', url: '/get', dataType: "json", contentType:"application/json", data: JSON.stringify({ subject : "gpu", filter : {

我尝试将jQuery AJAX请求发送到我的flask服务器:

$.ajax({
            type: 'GET',
            url: '/get',
            dataType: "json",
            contentType:"application/json",
            data: JSON.stringify({ subject : "gpu",
                    filter : {
                        ids: [2, 3]
                        }
                    }),
            success: function (data) {
                console.debug(data);
            }
        });
然后我等待服务器的响应。服务器部分如下所示:

@api.route('/get', methods=['GET'])
def get():
    response = None
    try:
        data = request.get_json()
        response = do_some_magic(data)
    except Exception as e:
        respond = {'state': 'error', 'data': e.message}
    finally:
        return json.dumps(respond)
所以,这种组合不起作用
request
只有args字段=
ImmutableMultiDict([(“{”subject:“gpu”,“filter:{”ids:[2,3]}},u']))
json
字段=
None

但当我在ajax请求中设置
类型:“GET”
并在flask GET method
methods=['GET']
时,服务器开始正确处理请求

所以,这不是一个真正的问题,但后来我尝试使用postman实用程序发送GET请求。请求:

GET /get HTTP/1.1
Host: localhost:5000
Content-Type: application/json
cache-control: no-cache
Postman-Token: 1d94d81c-7d93-4cf6-865a-b8e3e28278c1
{
    "subject": "gpu",
    "filter": {
        "ids": [
            2,
            3
        ]
    }
}------WebKitFormBoundary7MA4YWxkTrZu0gW--
flask代码使用
方法=['GET']
。所以问题是,是什么导致了这种行为

来自

资料 类型:纯对象、字符串或数组 要发送到服务器的数据。 如果尚未转换为字符串,则会将其转换为查询字符串。它被附加到GET请求的url。请参阅processData选项以防止此自动处理。对象必须是键/值对。如果value是数组,jQuery将基于传统设置的值(如下所述)使用相同的键序列化多个值

如果
processData
设置为
false
,则表示
data
字符串仍然附加到URL,只是没有进行一些处理

这可能是由于
XMLHttpRequest.send()的行为造成的

send()接受一个可选参数,用于指定请求的正文;这主要用于PUT等请求。如果请求方法是GET或HEAD,则忽略body参数,并将请求body设置为null


@J.J.Hakala的可能重复是的,但问题是,为什么邮递员的GET请求得到正确处理?