我一直在試圖找到一個整天的修復,但沒有運氣。Django和Internet Explorer會話丟失
我有一個Django 1.9.4網站,適用於除IE以外的所有主流瀏覽器。
我使用eclipse在本地運行Django站點進行測試。
當我使用本地服務器上的IE-11登錄我的站點時,它工作得很好。
當我將站點拖到生產單元(不同的IP地址,通過網絡)時,IE似乎失去了會話,並且我只是在登錄頁面處於無限循環。
下面是我相信這個問題的兩個功能。 「返回重定向(」 MYAPP:主頁「)」去裝飾有「@checkLogin」
applylogin獲取運行下的cookies我看到監控與IE開發工具的網絡時,以下
視圖方向鍵值到期域路徑安全HTTP只
收到的SessionID pk5svspepe9xk3og6ctnrwqrc56ukgrh週一,8月29日-2016 15時39分03秒GMT /否是
所以它似乎已經接收到會話ID。
@requires_csrf_token
def applylogin(request):
newUsername = ""
password = ""
err_username = False
err_pass=False
if(request.POST.has_key('username')):
newUsername=request.POST['username']
if(request.POST.has_key('password')):
password=request.POST['password']
try:
user = User.objects.get(username=newUsername)
if(user.check_password(password)):
request.session['login'] = newUsername
request.session['userid'] = user.id
request.session['useraccess'] = user.access
if user.access >= 255:
request.session['admin'] = True
else:
request.session['admin'] = False
return redirect("myapp:homepage")
else:
err_pass=True
except User.DoesNotExist as e:
err_username=True
logger.exception(e)
except Exception as e:
logger.exception(e)
build = getBuildType()
return render(request, "Redacted")
def checkLogin(fn):
def wrapped(request, *param, **dparam):
str_redirect = ""
str_loc = dparam.get('location', "xxxx")
if(str_loc == "xxxx"):
str_redirect = "xxxx:landingpage"
else:
str_redirect = str_loc+":login"
loginname = request.session.get("login", "")
try:
if loginname == "":
return redirect(str_redirect)
User.objects.get(username=loginname)
except User.DoesNotExist:
return redirect(str_redirect)
return fn(request, *param, **dparam)
return wrapped
另外,我不能確定這是否有什麼關係的問題,但我在日誌文件中得到這個消息訪問與IE
我很茫然右側的網站> Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/gunicorn/workers/sync.py", line 66, in run_for_one
self.accept(listener)
File "/usr/local/lib/python2.7/dist-packages/gunicorn/workers/sync.py", line 27, in accept
client, addr = listener.accept()
File "/usr/lib/python2.7/socket.py", line 202, in accept
sock, addr = self._sock.accept()
error: [Errno 11] Resource temporarily unavailable
只有當現在。 我不知道它是Django問題還是純粹的IE問題。
p.s.我已經嘗試了p3p的東西,但似乎沒有工作。