Django 1.4 - 重定向到非HTTP URL
我们有一个视图,它会重定向到一个非HTTP的链接,这个功能是在一个iOS应用中使用的。但是自从我们升级到Django1.4后,当执行这个重定向的代码时,程序就崩溃了。崩溃的提示是:
在 /myyrlscheme/ 发生了可疑操作
不安全的重定向到链接 scheme appdev:
以下是相关的代码:
if acode and acode.has_key('access_token'):
if DOMAIN == 'dev.mywebsite.com':
return HttpResponseRedirect('appdev://fbconnect?token=%s'%(acode['access_token']))
else:
return HttpResponseRedirect('app://fbconnect?token=%s'%(acode['access_token']))
我能理解为什么会崩溃,因为 HttpResponseRedirect
这个函数是期待一个 HTTP(s)
的链接格式。那么我该怎么告诉Django,这个链接是安全的,可以直接重定向呢?
1 个回答
21
我觉得你需要一个自定义的响应对象,可以考虑以下内容:
response = HttpResponse("", status=302)
response['Location'] = "appdev://..."
return response