我想弄清楚如何使用 Postman 对 Django REST Framework 进行身份验证。我有一个邮递员拦截器。但无论我尝试什么,我似乎都得到了 403 - CSRF 验证失败。请求中止。
在 chrome 中,我转到 DRF 的默认登录点。我输入用户名和密码,然后单击提交。它适用于 Chrome。使用拦截器,我可以看到 POST。现在,如果我在 Postman 中尝试完全相同的POST,我会收到带有 CSRF 错误的 403。这怎么可能呢?Postman 正在做与 chrome 正在做的完全相同的事情。它如何产生不同的结果?
这是我从 Chrome 登录...
我错过了什么?我一直在阅读有关执行 GET 请求,查看 set-cookie csrf 令牌和值,并将其放在我的 POST 请求的标头中的内容。我试过了,我能想到的每一个变化都无济于事。
我正在尝试提供一个 django web 应用程序,它使用 Gunicorn 和 httpd 作为代理,也提供静态内容。一切工作正常,除了 django Rest Framework 可搜索 API 根(应用程序 API 的入口点)未提供正确的 url。url 是本地主机和gunicorn 服务的端口,而不是机器的IP 地址或其主机名。这是该应用程序的 httpd conf 文件:
<VirtualHost *:80>
DocumentRoot /opt/example
ProxyPass /static/ !
Alias /static/ /var/www/html/static/
ProxyPass / http://localhost:8000/
ProxyPassReverse / http://localhost:8000/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
Gunicorn 在 localhost 的端口 8000 上提供服务。
这是 api 的视图:
@api_view(('GET',))
def api_root(request, format=None):
return Response({
'activity': reverse('activity-list', request=request, format=format)
'test' : reverse('test-list', request=request, format=format)
})
Run Code Online (Sandbox Code Playgroud)
当点击 api 根页面时,这是我得到的响应:
HTTP 200 OK
Content-Type: application/json
Vary: Accept
Allow: GET, HEAD, OPTIONS
{ …Run Code Online (Sandbox Code Playgroud) 我正在使用Angular Bootstrap(UI Bootstrap),但我遇到了手风琴标题的问题.似乎切换功能会覆盖手风琴标题中的锚元素,以便链接不可点击.例如:
<uib-accordion close-others="false">
<uib-accordion-group is-open="status.open" ng-repeat="p in model.processing>
<uib-accordion-heading>
<a href="http://www.google.com">go to google</a>
</uib-accordion-heading>
TEXT
</uib-accordion-group>
</uib-accordion>
Run Code Online (Sandbox Code Playgroud)
点击"转到谷歌"链接可以切换手风琴而不会转到链接.我可以通过ng-click解决这个问题,但问题是我希望中间点击仍可用于创建新选项卡.