我正在使用Google App Engine,Jquery和Django。我想POST數據被髮送到時提交表單時,服務器端,我這樣做是JQuery的用下面的代碼:當使用JQuery,Django和Google App Engine時,jQuery AJAX請求被調用兩次
$("#listform").submit(function() {
$.ajax({
type: "POST",
url: "/xhrtest",
data: {'name': 'herman'},
success: function(data){
console.log(data)
}
});
})
在我的Django的看法:
def xhrtest(request):
if request.method == "POST":
return HttpResponse("Post data!")
else:
return HttpResponse("GET request.")
我會預計會收到「發佈數據!」的回覆,但不知何故回覆總是「GET請求」。這也不是unicode問題,因爲可以打印request.method並查看「GET」。
在Firebug中對此進行評估時,我發現有兩個請求經歷:首先是一個POST請求,它接收到「GET請求」的回覆。然後是一個GET請求,它接收到「獲取請求」的回覆。以及。在Google App Engine開發控制檯中,我還可以看到兩個請求。 POST請求滿足301響應,並且GET獲得200.
這是什麼意思,我需要做什麼才能夠接收POST數據?
request.method(在你的django代碼中)是否正確?如果它是「發佈」,它不會等於「POST」。 – kevingessner 2010-09-11 18:19:01
某些服務器配置正在重定向您的POST請求,看起來像。 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) – mkoistinen 2010-09-11 18:23:11