我正在尝试通过本地Restful API在MongoDB中插入新记录。使用邮递员我可以这样做,但是如果我使用自己创建的网页,则会得到空结果。有人看到我做错了吗?
这是我在clienside上使用的代码。我使用了serializeObject库(请参见github:https://github.com/hongymagic/jQuery.serializeObject)
<div class="row">
<div class="col-md-4">
<form id="submissionForm" name="submissionForm">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="Id" class="control-label"></label>
<input asp-for="Id" class="form-control" />
<span asp-validation-for="Id" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Recommendation" class="control-label"></label>
<textarea asp-for="Recommendation" class="form-control"></textarea>
<span asp-validation-for="Recommendation" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="UserId" class="control-label"></label>
<input asp-for="UserId" class="form-control" />
<span asp-validation-for="UserId" class="text-danger"></span>
</div>
<div class="form-group">
<button type="submit" class="btn btn-default">Submit</button>
</div>
</form>
</div>
</div>
@section scripts {
<script>
$("#submissionForm").submit(function (event) {
var jsonObject = $("#submissionForm").serializeObject();
$.ajax({
type: 'POST',
contentType: 'application/json',
url: '/api/recommendations/',
data: jsonObject,
success: function (response) {
swal('succes', '', 'success');
}
});
return false;
});
</script>
在邮递员中,我可以将一些Json DATA作为POST请求发布
=>可以正常工作。
答案 0 :(得分:0)
从Postman中可用的URL看来,您想发出GET请求而不是POST
将type:'Post'
更改为type:'GET'
或完全删除type
,因为默认值为'GET'
答案 1 :(得分:0)
我分多个步骤解决了这个问题。
1。)使用Serializeobject库(在githib上可用)我以正确的格式序列化了formData。
2。)然后使用JSON.stringify为发布请求创建正确的正文。
解决方案:
$("#submissionForm").submit(function (event) {
var jsonObject = $("#submissionForm").serializeObject();
$.ajax({
type: 'POST',
contentType: 'application/json',
dataType:'json',
url: '/api/recommendations/',
data: JSON.stringify(jsonObject),
});
$("#submissionForm") = "";
return false;
});