问题
外卖或者点餐时往往从前端要传到后端的是一个JSON包含点的餐品和数量以及价格,食用Flask应该怎么获取呢?
代码
前端JS
// (1) 创建一个XMLHttpRequest
var ajaxObj = new XMLHttpRequest();
// (2)设置请求的参数。包括:请求的方法、请求的url。
ajaxObj.open('post', '{{ url_for('
create_order ') }}');
ajaxObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
// (3)发送请求
ajaxObj.send(
'data=' + JSON.stringify(ajax_data)
);
//(4)注册事件。 onreadystatechange事件,状态改变时就会调用。
//如果要在数据完整请求回来的时候才调用,我们需要手动写一些判断的逻辑。
ajaxObj.onreadystatechange = function() {
// 为了保证 数据 完整返回,我们一般会判断 两个值
if (ajaxObj.readyState === 4 && ajaxObj.status === 200) {
// 如果能够进到这个判断 说明 数据 完美的回来了,并且请求的页面是存在的
// 数据是保存在 异步对象的 属性中
console.log(ajaxObj.responseText);
} else {
}
}
其中使用JSON.stringify(ajax_data)
将要提交的JSON格式转化成字符串
Flask后端处理
import json
data = json.loads(data)
然后data就是我们所需要的data了