DjangoでGETデータの代わりにPOSTedデータを使用する際に問題が発生しています。POSTメソッドによるDjangoの問題
ここに私の簡素化urlpatternsクラスがあります:
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のdevサーバはこれを返します:
[28/May/2011 00:15:06] "POST /hello/ajax_info HTTP/1.1" 500 69236
明らかなものがありませんか?私の要求がPOSTであっても私のビューアに届くはずであることを示しているようです。
とjavascriptのオープンコール(例ではfalse)に対するboolパラメータは重要ではないようです。同じことが成り立ち、同じ結果が得られません。 –