ajax 如何接受flask 传送的数组对象?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax 如何接受flask 传送的数组对象?相关的知识,希望对你有一定的参考价值。
在阿里克斯当中,只要接收数据的地址写对了,接口没有弄错,那么对方发送过来的数组对象肯定可以接受,只不过js不能直接操作书的对象,应该把先把数字对象转化为建筑队的形式。 参考技术A <script type=text/javascript>
function ajaxForm()
$.ajax(
type: 'post',
//contentType: "application/json; charset=UTF-8",
url: $SCRIPT_ROOT,
dataType: 'json',
data:
'n1': $('input[name=n1]').val(),
'n2': $('input[name=n2]').val(),
'n3': $('input[name=n3]').val(),
,
error: function(xhr, err)
alert('请求失败,原因可能是:' + err + '!')
,
success: function(data, textStatus)
$('#max').text(data.max);
$('#min').text(data.min);
);
return false
</script>
如何在 Python 的 Flask 中识别通过 AJAX 发出的请求?
【中文标题】如何在 Python 的 Flask 中识别通过 AJAX 发出的请求?【英文标题】:How can I identify requests made via AJAX in Python's Flask? 【发布时间】:2014-09-01 11:44:21 【问题描述】:我想检测浏览器是否通过 AJAX (AngularJS) 发出请求,以便我可以返回 JSON 数组,或者我是否必须呈现模板。我该怎么做?
【问题讨论】:
【参考方案1】:Flask 在request
对象中带有is_xhr
属性。
from flask import request
@app.route('/', methods=['GET', 'POST'])
def home_page():
if request.is_xhr:
context = controllers.get_default_context()
return render_template('home.html', **context)
注意:此解决方案已弃用且不再可行。
【讨论】:
请注意(来自 Flask 官方文档):“这只适用于支持 X-Requested-With 标头并将其设置为“XMLHttpRequest”的库。” "'Request.is_xhr' 自烧瓶版本 0.13 起已被弃用",上述答案不再可行 @kres0345 您想回答当前有效的方法吗?我会支持您的回答? @AlexLordThorsen 我找不到检查请求是否来自 ajax 的“正确”方法,但我发布了一个适合我的目的的解决方法【参考方案2】:对于未来的读者:我所做的是如下所示:
request_xhr_key = request.headers.get('X-Requested-With')
if request_xhr_key and request_xhr_key == 'XMLHttpRequest':
#mystuff
return result
abort(404,description="only xhlhttprequest is allowed")
如果请求标头不包含“XMLHttpRequest”值,这将给出 404 错误。
【讨论】:
【参考方案3】:没有任何方法可以确定请求是否由 ajax 发出。
我发现对我有用的是简单地为 xhr 请求包含一个 get 参数,而在非 xhr 请求中简单地省略该参数。
例如:
XHR 请求:example.com/search?q=Boots&api=1
其他请求:example.com/search?q=Boots
【讨论】:
以上是关于ajax 如何接受flask 传送的数组对象?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 的 Flask 中识别通过 AJAX 发出的请求?