간단한 django 응용 프로그램을 만들고있어 응답을 게시 할 수 있도록 내 csrftoken이 제대로 설정되었는지 확인해야했습니다.쿠키가 원격으로 설정되지 않지만 로컬에서 양호하게 작동합니다.
로컬로 테스트하고 자바 스크립트 디버깅을 살펴보면 모든 것이 세계와 맞고 csrf가 제대로 첨부되어 있습니다. 그러나 Heroku에서 실행되는 정확한 중단 점을 볼 때 전체 getCookie 함수는 공백을 반환합니다. 참고로, 나는 Django Docs에서 표준의 getCookie 함수를 사용하고 있습니다 :이 경우,
// using jQuery
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
var csrftoken = getCookie('csrftoken');
다른 jQuery를하고 자바 스크립트 페이지에서 제대로 작동하지만, document.cookie를 완전히 비어 있습니다.
여러 도메인 (herokuapp.com, domain_name 등)에서 시도했지만 모두 같습니다. 왜 document.cookie가 emtpy일까요? 거기에 있어야하지 않아야합니까?
heroku에서 HTTPS를 실행하고 있습니까? –
http :를 통해 사이트에 액세스하고 있습니다. https를 강제하는 기본 설정이 있습니까? – aronchick