我有一个使用Django的Facebook应用程序。在我的一个视图中,我使用以下代码来使用户登录。
在IE中,返回HttpResponseRedirect行失败,并显示错误消息“此内容无法在框架中显示...”,尽管其他浏览器工作正常。
你有一个想法,为什么IE为HttpResponseRedirect失败? (这是在Windows 7上的IE9上生成的问题,服务器正在使用django-1.3)
def auto_login(request):
username = request.GET['username']
password = request.GET['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
theURL='http://apps.facebook.com/myapp/'
return HttpResponseRedirect(theURL)
else:
return HttpResponse("disabled account")
else:
return HttpResponse("Invalid login")
答案 0 :(得分:1)
这可能是两件事,都与浏览器安全模型有关。
选项1 是重定向到另一个域。 客户可能决定遵循重定向或拒绝。特别是客户端并不总是接受HTTP 307重定向(允许转发POST数据)。
选项2 与使用HTTP方法POST网址将资源重定向到使用方法GET的其他资源相关。
如果当前视图的HTTP方法和重定向不同(即针对/ login url的HTTP POST与facebook / myapp的HTTP GET),至少IE8将拒绝重定向。我不确定IE9中是否已更改。
你可以尝试一些事情。
一些好的链接: