如何在Post请求中使用$ .Ajax?

时间:2018-09-10 17:11:37

标签: jquery ajax post

我正在尝试通过本地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请求发布

=>可以正常工作。

2 个答案:

答案 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;
});