所以我一直在关注本教程http://webcloud.se/log/AJAX-in-Django-with-jQuery/,并且 get 方法工作正常。即我得到一个弹出窗口说它应该在弹出窗口中说什么。但是,当我使用 post 方法时,我什么也得不到。看来该请求甚至没有达到我的观点。
这就是我处理这个问题的 javascript 的样子:
$(document).ready(function(){
$("#popupbutton").click(function(){
$.post("/launch_instances", {
name: "Monty",
food: "Spam"
},
function(data) {
alert(data);
}
);
});
...................
这是我的模板的相关位:
<center>
<div id="popupbutton"><input type="submit" value="Launch Instances!" /></div>
</center>
这是我的views.py:
from django.http import HttpResponse
def li_view(request):
return HttpResponse("post gets to the view")
if request.is_ajax():
if request.method == 'GET':
message = "This is an XHR GET request"
elif request.method == 'POST':
message = "This is an XHR POST request"
else:
message = "Nothing"
else:
message = "No XHR"
return HttpResponse(message)
正如您所看到的,当我到达我的视图时,我做的第一件事是返回一个 HttpResponse,但是当我使用 post 时,我看不到任何弹出窗口,就像我使用 get 时所做的那样。所以我的猜测是,由于某种原因,请求甚至没有到达视图。
这就是我的 urls.py:
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^launch_instances/', 'simdata.views.li_view'),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
)
周围也有类似的问题,但没有比这更奇怪的了。我是 django/ajax/jquery 的新手,所以可能遗漏了一些非常小的东西。
提前致谢 :)