【发布时间】:2011-12-17 06:50:54
【问题描述】:
我正在使用 django 构建一个简单的网站。当您输入基地址(现在是127.0.0.1:8000/)时,我使用 django 显示一个视图,该视图会根据您的用户权限进行一些检查并重定向您。 (如果你有管理员权限,你去/admin,如果你没有你去/home,如果你没有登录,你去/login。)
当我发出那个 HTTP 请求时,我会得到重定向我应该这样做,但我还在 django 日志中看到以下两个错误:
- 代码 400,消息错误请求语法
('\x16\x03\x01\x00\x95\x01\x00\x00\x91\x03\x01N\xaa\x9c\x08\x96\x7f\x92\xe9Z\x925\xcaY4\xa6\xa5\xab\xf2\x16\xfaT\x89\xe7\x8a\xc3\x99J)6\xfb\xc44\x00\x00H\xc0') "??N????Z?5?Y4?????T??ÙJ)6??4H?" 400 -
我将第一个中的十六进制翻译为(为便于阅读添加了空格):SYN ETX NUL NUL U SOH NUL NUL Q ETX NUL N 170 156 X r 246 STX 141 214 ? 143 EOT FS j 142 223 s 241 220 < 185 \ \ m 242 &
我当然知道为什么服务器不喜欢这样的请求,但我不知道它来自哪里。
有什么想法吗?
非常感谢。
==============
这是视图的代码:
def index(request):
user = request.user
admin_courses = []
if (user.is_authenticated()):
u_id = user.getUserId()
my_enrollment = Enrollment.objects.filter(user_id=u_id)
admin_enrollment = my_enrollment.filter(type="ADMIN")
for enr in admin_enrollment:
course = Course.objects.get(id=enr.getCourseId())
admin_courses.append(course)
if (len(admin_courses)>0):
return HttpResponseRedirect('/admin')
else:
return HttpResponseRedirect('/home')
return HttpResponseRedirect('/login')
【问题讨论】:
-
也许您应该显示视图的代码。
-
您是否尝试在重定向后添加斜杠?
-
是的,它不会改变任何东西。不过是个好主意。
-
当我们发送空数据时也会出现错误请求。当我在请求中发送一个空数组时,我收到了这个错误,而它本应该是一个非空数组。花了一段时间才弄明白
标签: django http hex ascii http-status-code-400