我有一个使用Django的Facebook应用程序。在我的一个视图中,我使用下面的代码来使用户登录。
在IE中,返回HttpResponseRedirect行失败,错误消息是“此内容不能显示在框架中.”,尽管其他浏览器运行良好。
你有什么想法吗,为什么IE对HttpResponseRedirect失败了?(这是在Windows7上的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")发布于 2012-03-14 10:06:14
这可以是两件事,两者都与浏览器安全模型相关。
选项1是重定向到另一个域。客户可能决定遵循重定向,或拒绝。特别是HTTP 307重定向(它允许转发POST数据)并不总是被客户端接受。
选项2与使用HTTP将url重定向到另一个使用方法GET的资源有关。
如果当前视图和重定向的HTTP方法不同(即针对facebook/myapp的/login url和HTTP的HTTP ),至少IE8将拒绝重定向。我不确定这一点是否在IE9中被改变了。
有几件事你可以试试。
几个很好的链接:
Django/IE8 Admin Interface Weirdness
http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
https://stackoverflow.com/questions/7939289
复制相似问题