我想测试对Django站点的一些AJAX请求,但是服务器认为来自我的测试工具的请求不是AJAX请求。我需要设置什么HTTP头?在
服务器代码有这样一个测试:
# in myapp/ajax.py
def my_request(request, some_id):
if request.is_ajax():
return json.dumps([some_id, 'processed for AJAX'])
# some other processing, or an error
我使用Postman发送我的AJAX请求,并且我已经学会了将Accept
头设置为application/json
,但是我应该设置什么头来显示它是AJAX请求呢?在
在Django代码中,我找到了测试方法:
^{pr2}$当我将HTTP_X_REQUESTED_WITH
头设置为XMLHttpRequest
时,测试仍然失败。在
每当我通过Django发送Ajax数据时,我总是把它放在最上面。在
当我打开Chrome开发工具时,我看到一个普通的AJAX请求包含了头
X-Requested-With
设置为XMLHttpRequest
。在Postman请求中添加该头可以使其正常工作。只是一个稍微不同的名字。在如果您正在发出修改数据的AJAX请求,您将希望切换到发出POST请求。这使得Django的cross-site request forgery工具发挥作用,因此您需要从其他表单的隐藏字段复制CSRF令牌,然后在测试AJAX请求时将其粘贴到
X-CSRFToken
头中。在相关问题 更多 >
编程相关推荐