Javascript 烧瓶罐';t在ajax GET请求中处理json数据
我尝试将jQuery AJAX请求发送到我的flask服务器: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 : {
$.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 methodmethods=['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请求得到正确处理?