我在使用POST數據而不是使用Django的GET數據時遇到了問題。使用POST方法的Django問題
這裏是我的簡單的URL模式類:
urlpatterns = patterns('',
('^hello/$', hello),
('^hello/ajax_info/$', ajax_info),
)
而且我在views.py文件這樣的觀點:
def ajax_info(request):
if request.method == "POST":
print "This is a post"
# do stuff
的網頁擔任了當您瀏覽/你好/有此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()被調用,當你按下它)
如果我取消註釋JavaScript中的「GET方法」,並註釋掉「POST方法」,那麼我的django視圖被調用。
但是,如果我註釋掉「GET方法」並使用「POST方法」代碼,那麼我的查看器甚至不會被調用。和Django的開發服務器返回此:
[28/May/2011 00:15:06] "POST /hello/ajax_info HTTP/1.1" 500 69236
我是否缺少明顯的東西?這些示例似乎表明,即使我們的請求是POST,我的請求也應該發送給我的查看者。
以及在javascript中打開調用的bool參數(在本例中爲false)似乎並不重要。 true也不起作用,結果相同。 – 2011-05-28 04:37:26