记一次Django踩坑:Django中request.META中存放客户端请求头数据,按如下方式取出数据:
request.META['some_key']
这样可以获取客户端在请求头中存放的{'some_key':'some_data'}数据,但是这样不安全,推荐使用字典的get方法:
request.META.get('some_key', None)
这样的方式在本地调试没有任何问题,但是部署到服务器便出现了问题,输出request.META发现没有客户端传来的信息.
我的服务端环境:
- Nginx
- gunicorn
- django
- supervisor
看到rest-framework文档中有写到使用Apache配置Django时,有无法传递请求头的情况,但我用的是Nginx,后来尝试各种解决办法终于发现:
使用类似'key'这样的键传递请求头可以被接收,但如果使用'some_key',加上一条下划线就不能被接收了!...
暂不知道原因,现贴出解决办法,给同样碰到类似问题的同学.
网友评论