在使用Ajax / jQuery从客户端向服务器发布地址表单时,我在后端收到字符串响应。有人可以建议,我如何处理字符串并获取它包含的值。
下面是Ajax / jQuery脚本
<script> // Submitting address form via Ajax
function addressform() {
var data = $('#addressform').serialize();
$.post('/suggestions', data);
}
</script>
下面是后端(Django)收到的字符串响应,如何处理它以获取表单字段及其值(例如DoorNo = 423,BuildingName = Newstead)
"GET /addressform/?DoorNo=423&BuildingName=Newstead&Locality=Hatfield&Area=Herefordshire&City=&Pincode=AL10+9DQ HTTP/1.1" 200 4818
答案 0 :(得分:1)
您可以使用serializeArray(),而不是使用'序列化'。我发现使用JSON更容易。
<script> // Submitting address form via Ajax
function addressform() {
var data = $('#addressform').serializeArray();
$.post( '/suggestions', $.toJSON(data) );
}
</script>
然后,在Django视图中
import json
def receiveSuggestions(request):
data = json.loads(request.body)
#
# Add to database and other stuff
#
return HttpResponse( json.dumps({"status" : 1}) )
基本上,视图中的request.body将允许您访问发布请求中发送的任何内容。之前是raw_post_data。也许这会有所帮助? Where's my JSON data in my incoming Django request?
答案 1 :(得分:1)
根据您的问题,听起来您正在寻找处理来自django的ajax请求传递的数据。
您可以查看request.POST
的帖子请求或request.GET
获取请求以获取您传递的键值的字典。请参阅文档here。
举一个示例,我将为/addressform/
设置一个视图处理程序,我们称之为address_form
def address_form(request):
if request.method == 'POST':
# process the post and return appropriate response
params = request.POST
door_no = params['DoorNo']
#etc for each key value
...
else:
# get on the url, handle return the appropriate response