14

HTTP 以外の URL スキームにリダイレクトするビューがあります。iOS アプリで使用されます。しかし、Django1.4 にアップグレードしたため、このリダイレクト コードが実行されるとクラッシュします。でクラッシュします

/myyrlscheme/ での怪しい作戦

スキーム appdev を使用した URL への安全でないリダイレクト:

コードは次のとおりです。

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']))

URLスキームがHttpResponseRedirect予想されるように、これがクラッシュする理由を理解できます。HTTP(s)これが安全なURLであり、盲目的にリダイレクトすることをDjangoに伝えるにはどうすればよいですか?

4

1 に答える 1

21

カスタムの Response オブジェクトが必要になると思います。以下を検討してください。

response = HttpResponse("", status=302)
response['Location'] = "appdev://..."
return response
于 2013-01-28T09:28:35.493 に答える