ajax如何请求python接口
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax如何请求python接口相关的知识,希望对你有一定的参考价值。
Ajax可以使用HTTP请求,XMLHttpRequest对象来请求Python接口。1.首先,创建XMLHttpRequest对象来发起HTTP请求;2.然后为请求提供必要的参数,如URL、请求方法和头部信息等;3.最后调用XMLHttpRequest.send()发送请求并处理响应,从而可以实现请求Python接口的功能。 参考技术A 使用AJAX请求Python接口,首先需要确定接口的请求方式,然后使用AJAX调用相应的请求方式,通过HTTP协议来发出请求,以获取Python接口的数据。如何在 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如何请求python接口的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 的 Flask 中识别通过 AJAX 发出的请求?