我有AJAX代码,可向Django 1.6.4应用程序发出POST请求。该视图通过启用了CSRF保护django.middleware.csrf.CsrfViewMiddleware
。如果我没有传递cookie,但是传递了HTTP_X_CSRFTOKEN,则它将失败。
我正在查看的代码,django.middleware.csrf.CsrfViewMiddleware
并且在161行上看到它会检查是否if csrf_token is None:
从cookie中获取了代码。如果为None,则返回。之后才检查csrfmiddlewaretoken
参数和HTTP_X_CSRFTOKEN
请求标头。这看起来是不正确的,只有在检查了所有可能的位置后才能检查csrf_token值是否丢失。
还有其他人有类似的问题吗?我看错了吗?