Json 通过AJAX向Django视图发送表单数据时出错
我有一个HTML表单,它接受用户的输入。单击submit按钮后,表单数据需要通过AJAX以JSON格式发送到views.py。我尝试了一些东西,但是我得到了一个错误,JSON对象必须是str,而不是'NoneType'。JSON数据通过以下方式加载到views.py中:Json 通过AJAX向Django视图发送表单数据时出错,json,django,ajax,Json,Django,Ajax,我有一个HTML表单,它接受用户的输入。单击submit按钮后,表单数据需要通过AJAX以JSON格式发送到views.py。我尝试了一些东西,但是我得到了一个错误,JSON对象必须是str,而不是'NoneType'。JSON数据通过以下方式加载到views.py中: form = json.loads(request.POST.get('form')) 数据以名为“searchdata”的字典的形式返回。 表格: <form method="POST" id="inputForm"&
form = json.loads(request.POST.get('form'))
数据以名为“searchdata”的字典的形式返回。
表格:
<form method="POST" id="inputForm">
<div class="container" style="margin-bottom: 50px;width:100%">
<div class="container-fluid mt-3">
<div class="card" id="statform">
<div class="card-header">
<div class="card-title">
<div style="font-size: 25px">Filter</div>
</div>
</div>
<br>
<div class="card-body">
<div class="row">
<div class="col-xs-6">
<div class="col-xs-6">
<label name="start_date" class="control-label" style="width:35%">Start date</label>
<input type="date" id="start_date" style="color:black;width:100px" ></input>
</div>
</div>
<div class="col-xs-6">
<label name="end_date" class="control-label" style="width:35%">End Date(Default: Current Date)</label>
<input style="color:black;width:100px" id="end_date" type="date"></input>
</div>
</div>
<br>
<div class="row">
<div class="col-xs-6">
<label name="fruit_name" class="control-label" style="width:35%; padding-left:15px">Select a Fruit</label>
<select class="js-example-placeholder-single1 js-example-basic-multiple form-control" id="fruit_name" placeholder="Select" style="width:210px" multiple="multiple">
</select>
</div>
<div class="col-xs-6">
<label name="vendor_test" class="control-label" style="width:35%">Select Vendor_TEST</label>
<select class="js-example-placeholder-single2 js-example-basic-multiple form-control" style="width:210px" id="vendor_test" multiple="multiple">
</select>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<label name="release_version" class="control-label" style="width:35%; padding-left:15px">Select Release version</label>
<select class="js-example-placeholder-single3 js-example-basic-multiple form-control" style="width:210px" id="release_version" multiple="multiple">
</select>
</div>
<div class="col-xs-6">
<label class="control-label" style="width:35%">Error Message</label>
<input type="text" placeholder="Type message here" style="width:210px">
</div>
</div>
<div class="row">
<div class="col-xs-6">
<label class="control-label" style="width:35%; padding-left:15px">Error Message List</label>
<select class="js-example-placeholder-single4 js-example-basic-multiple form-control" style="width:210px" id = "error_message" multiple="multiple">
</select>
</div>
</div>
<div class="text-center">
<button class="btn btn-md btn-default" type="submit" name="search" value="search" onclick="loadResults()">
<i class="fa fa-arrow-circle-right"></i> Submit
</button>
<button class="btn btn-md btn-default" type="reset" name="searchreset" value="reset">
<i class="fa fa-arrow-circle-right"></i> Reset
</button>
</div>
</div>
</div> <!--form-->
</div> <!-- row -->
</div> <!--container main-->
</form>
我哪里做错了?非常感谢您的帮助。如果您使用
console.log(JSON.stringify(formdata))
,您是否有数据?把你的表格贴在图希·尤甘达尔身上。它显示一个空字符串作为输出。我也用form.Thank更新了这个问题。使用这个var formData=new formData(document.querySelector('#inputForm'))
同样的东西。同样的什么空白表单数据或django错误?
$.ajax({
url : window.location.href,
type : 'POST',
cache : false,
data:{form:JSON.stringify(formdata)},
success:function(res){
if(typeof res.searchdata != 'undefined'){
self.$dispatch('searchdataevent',res.searchdata);
}
if(typeof res.message != 'undefined'){
self.message = res.message;
}
self.loading = false;
},
error : function(err){
self.message = 'Error communicating with server';
self.loading = false;
}
});