У меня проблема с использованием данных POST вместо данных GET с Django.
Вот мой упрощенный класс urlpatterns:
urlpatterns = patterns('',
('^hello/$', hello),
('^hello/ajax_info/$', ajax_info),
)
И у меня есть это представление в views.pyfile:
def ajax_info(request):
if request.method == "POST":
print "This is a post"
# do stuff
Веб-страница, обслуживаемая при просмотре / hello /, содержит следующий javascript:
function loadXMLDoc(name) {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
//window.onload()
}
}
// GET method
//parm = values
//xmlhttp.open("GET",name+"?q="+parm, true);
//xmlhttp.send();
// POST method
parms = "data=" + values
xmlhttp.open("POST", "ajax_info", false);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
xmlhttp.send(parms)
} // end function loadXMLDoc
(на веб-странице у меня есть кнопка, вызывающая loadXMLDoc () для вызова при нажатии)
Если я раскомментирую «метод GET» в javascript и закомментирую «метод POST», то будет вызвано мое представление django.
Ноесли я закомментирую «метод GET» и использую код «метод POST», то мой зритель даже не будет вызван.И сервер разработки django возвращает это:
[28/May/2011 00:15:06] "POST /hello/ajax_info HTTP/1.1" 500 69236
Я что-то упускаю из виду?Примеры показывают, что мой запрос должен попасть к моему зрителю, даже если это POST.