1

在使用 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
4

2 回答 2

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。也许这会有所帮助?我传入的 Django 请求中的 JSON 数据在哪里?

于 2013-10-30T01:32:00.127 回答
1

根据您的问题,听起来您正在寻找处理来自 django 的 ajax 请求传递的数据。

您可以查看request.POSTfor post requests 或request.GETfor get requests 以获取您传递的键值的字典。请参阅此处的文档。

举个例子,我会给你一个视图处理程序/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
于 2013-10-30T01:32:29.673 回答