gpt4 book ai didi

jquery - Django:我的简单 ajax 实验出了什么问题?

转载 作者:行者123 更新时间:2023-12-01 02:17:10 25 4
gpt4 key购买 nike

我试图了解 Django + Jquery 和 Ajax 调用如何协同工作。

这只是一个简单的/test/url,显示单个输入表单,一旦提交,就会通过 ajax 从服务器检索答案。

为此我写了一个非常小的 View :

def test(request):
if request.is_ajax():
from django.http import HttpResponse
post_text = request.POST.get("post_data")
return HttpResponse("{'response_text': '"+post_text+" recieved.'}", mimetype="application/json")
else:
return render_to_response('test.html', {},context_instance =RequestContext(request))

我已将此 url 规则写入 urls.py 中的 urlpattern:

(r'^test/$', 'myapp.views.test'),

这是我的 test.html 模板:

<html>
<head><title>template</title></head>

<script type="text/javascript" src="/media/js/jquery.js"></script>

<script type="text/javascript">
$(document).ready(function() {
$('#post_form').submit(function(event){
event.preventDefault(); // cancel the default action
var form = this;
var data = {}
data.post_data = $(form).find('input[@name=our_text]').val();

$.post("/test/",
data,
function(responseData) {
alert(responseData.response_text);
},
"json"
);
});
});
</script>

<body>
<form id="post_form" method="post">
INPUT: <input type="text" name="our_text" />
<input type="submit" value="Add" />
</form>
</body>
</html>

一旦我填写了输入字段并提交,它似乎没有在我的 www.mysite.com/test/上做任何回复。可能是什么问题?

最佳答案

jQuery 1.4 不会解析无效的 JSON。正如 Alex Gaynor 提到的,您的 JSON 无效,因为它使用单引号,而不是双引号。

手工编写 JSON 很愚蠢。使用库将 python 数据类型转换为 JSON。再次,正如 Alex 提到的,Django 已经为您提供了 simplejson。或者,如果您使用的是 Python2.6 或更高版本,则 json 是标准库 http://docs.python.org/library/json.html 的一部分。

from django.http import HttpResponse
from django.utils import simplejson

def test(request):
if request.is_ajax():
post_text = request.POST.get("post_data")
response_dict = {'response_text': '"+post_text+" recieved.'}
return HttpResponse(simplejson.dumps(response_dict), mimetype="application/json")
else:
return render_to_response('test.html', {},context_instance =RequestContext(request))

关于jquery - Django:我的简单 ajax 实验出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2411877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com