Как использовать $ .Ajax в почтовом запросе? - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь вставить новую запись в мою MongoDB через локальный restful API. Используя почтальонов, я могу это сделать, однако, если я использую созданную мной веб-страницу, я получаю нулевые результаты. Кто-нибудь видит, что я делаю не так?

Вот код, который я использовал на клиентской стороне. Я использую библиотеку 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 голосов
/ 12 сентября 2018

Я решил эту проблему в несколько шагов.

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;
});
0 голосов
/ 10 сентября 2018

По URL, который работает в Почтальоне, кажется, что вы хотите сделать запрос GET, а не POST

Измените type:'Post' на type:'GET' или полностью удалите type, поскольку по умолчанию 'GET'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...