我正在使用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'>×</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.")