在这一个晚上,不能看到什么,我缺少的:如何获得Django和jQuery的阿贾克斯发挥好 - 不触发成功
JS:
$(document).ready(function() {
$("#form").submit(function() {
var txt = $('textarea[name=text]').val();
$.ajax({
type: "POST",
url: "/parse_text/",
data: {"text": txt},
dataType: "text",
success: function(h) {
alert('ok');
},
error: function() {
alert('failed');
}
});
});
});
而且Django的代码:
def parse_text(request):
return HttpResponse("hello", mimetype="text'/plain")
我不能得到它来触发成功的方法。使用萤火虫我可以看到,Django返回“你好”,状态200.
我也尝试改变为JSON(虽然我真正想要的是返回一个HTML表)。
在JS:
dataType: "json",
鉴于:
return HttpResponse('[{"hello": "hello"}]', mimetype="application'/json")
现在返回[{ “你好”: “你好”}]和200点的状态。
我究竟在做什么错误!
最后的工作代码:
$(document).ready(function() {
$("#form").submit(function() {
var txt = $('textarea[name=text]').val();
$.ajax({
type: "POST",
url: "/parse_text/",
data: {text : txt},
success: function(html) {
$("#actions").html(html);
},
error: function() {
alert("fail");
}
});
return false;
});
});
,并在视图:
def parse_text(request):
html = ''
text = request.POST['text']
... generated some html based on the text ...
return HttpResponse(html)
您是否安装了Firefox&FireBug(如果没有,请同时获得)?打开FireBug,进入控制台或网络面板,提交表单,看看提交的内容和返回的内容。另外,在开发服务器上运行你的django应用程序,看看请求是否正确。也许做这些事情会给你一个提示。这就是说,我真的没有看到你在这里做错了什么...... –