除了复杂性之外,在请求中检测该请求是由CLI程序(例如curl
)发出的,或者是否是由浏览器发出的最简单的肮脏方法是什么?以下是我想弄清楚的事情:
def view(request):
if request.is_from_browser:
return HTML_TEMPLATE
else:
return JSON
答案 0 :(得分:0)
HTTP请求标头中的某些内容,我首先尝试使用Accept
标头。使用accept标头,客户端可以指定它想要的内容类型。这将责任放在客户端上。
答案 1 :(得分:0)
Request.is_ajax()
检查HTTP_X_REQUESTED_WITH
标头是否等于XMLHttpRequest
。这正在成为 web 框架/库中的"行业标准" ,用于将 Ajax调用与正常请求分开。但这取决于客户端的合作实际设置标头。没有这种合作,没有100%万无一失的方法可以检测浏览器,客户端,Ajax等。