Как исправить метод запроса «POST», не поддерживаемый в Spring Boot? - PullRequest
0 голосов
/ 01 мая 2018

Я создаю API с помощью весенней загрузки. В этом проекте я использовал Spring Web, JPA, jstl и MySql как зависимости API. В этом проекте я создал контроллер, модель и репозиторий. По сути, этот API выполняет операции CRUD. А также я создал клиент, который использует мой собственный API. Когда я использую Postman для POST-данных, он успешно вставляет данные в базу данных и выдает мне 200 OK кода. Затем я создал веб-страницу, создал HTML-форму и использовал Ajax для получения этих данных. Но дело в том, что когда я нажимаю кнопку вставки в форме, это дает мне эту ошибку.

Страница ошибки Whitelabel

Это приложение не имеет явного сопоставления для / error, поэтому вы видите это как запасной вариант.

вт. 01 мая 05:16:48 IST 2018 Произошла непредвиденная ошибка (тип = метод не разрешен, статус = 405). Способ запроса 'POST' отсутствует поддерживается

Как я могу это исправить ??

Мой контроллер:

package com.kisalka.pacrestapi.controller;

import java.util.List;

import javax.validation.Valid;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import com.kisalka.pacrestapi.repository.ImRepository;
import com.kisalka.pacrestapi.model.ImModel;

@RestController
@RequestMapping("/api")
public class ImController {

    @Autowired
    private ImRepository TaskRepository;


    @RequestMapping(method=RequestMethod.POST, value="/tasks")
    public ImModel createNote(@RequestBody ImModel note) {
        return TaskRepository.save(note);
    }

}

Моя веб-страница:

<form class="form-horizontal" method="POST" action="">

                    <div class="form-group">
                        <label class="control-label col-md-3">Project Name</label>
                        <div class="col-md-7">
                            <input type="text" class="form-control" name="pname" id="txtPname"/>
                        </div>              
                    </div>

                    <div class="form-group">
                        <label class="control-label col-md-3">Developer Name</label>
                        <div class="col-md-7">
                            <input type="text" class="form-control" name="devname" id="txtDevname"/>
                        </div>              
                    </div>

                    <div class="form-group">
                        <input type="submit" class="btn btn-primary" value="Save" id="btnRegister"/>
                    </div>

                </form>

JQuery и Ajax:

<script type="text/javascript">
        $(document).ready(function () {

            // Save the new user details
            $('#btnRegister').click(function () {
                $.ajax({
                    url: '/api/tasks',
                    method: 'POST',
                    data: {
                        pname: $('#txtPname').val(),
                        devname: $('#txtDevname').val()
                    },
                    success: function () {
                        alert("Inserted"); 
                    },
                    error: function (jqXHR) {
                        $('#divErrorText').text(jqXHR.responseText);
                        $('#divError').show('fade');
                    }
                });
            });
        });
    </script>

1 Ответ

0 голосов
/ 01 мая 2018

Почему у вас есть форма с кнопкой отправки и запрос ajax? Вероятность того, что форма отправляется первой, это означает, что запрос отправляется на "", что объясняет, почему вы получаете 405: Request method 'POST' not supported

Попробуйте заменить

<form class="form-horizontal" method="POST" action="">

для

<form class="form-horizontal" method="POST" action="/api/tasks">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...