如何在使用Jquery表单插件向服务器发送ajax post请求之前序列化请求数据?

时间:2015-01-24 10:12:00

标签: jquery ajax json jquery-forms-plugin

我正在使用Jquery Form Plugin将表单数据的发送请求发送到服务器。我希望将请求作为JSON对象发送。如果我只使用.ajax函数,我会将数据选项设置为data: JSON.stringify(formData, null, 2),但由于pugin为我收集数据,我有这样一个问题:如何在发送之前修改(序列化)请求数据?

upd 有一个名为.formSerialize()的API,但我不知道在哪里应用它。如果取消注释注释行,我将被重定向到具有服务器响应的页面。否则邮寄工作正常。

如何将.formSerialize()结果传递给.ajaxSubmit()

$(document).ready(function() { 
    function create_post() {
        var options = { 
            type:      'post',     
            enctype:       "multipart/form-data",
            dataType:  'json',
            // data: $('#post-form').formSerialize(); 

            success : function(json) {
                    $("#id_img").attr('src', json.img_url)
                    console.log("success"); 
                    );
                },

            error : function(xhr,errmsg,err) {
                $('#results').html("<div class='alert-box alert radius' data-alert>Oops! We have encountered an error: "+errmsg+
                    " <a href='#' class='close'>&times;</a></div>"); 
                console.log(xhr.status + ": " + xhr.responseText);
            } 
        }; 


        $('#post-form').ajaxSubmit(options); 
    };  

    $('#post-form').on('submit', function(event){   
        create_post();
        return false;
    });

});

服务器Django views.py

def edit_ajax(request):
    if request.method == 'POST':
        """...work with request data..."""

        return HttpResponse(
                json.dumps({'img_url': person.ava.thumbnail.url}),
                content_type="application/json"
            )

    return HttpResponse("You shouldn't have come here.")

0 个答案:

没有答案