отправить звездный рейтинг без перенаправления в тимелист и весенний ботинок, используя jquery, ajax - PullRequest
0 голосов
/ 28 апреля 2020

Я использую плагин star-rating jquery в моем проекте, вот ссылка https://plugins.krajee.com/star-rating#implementations. Итак, после нажатия на звезды, я хотел бы представить результат без перенаправления, с помощью og ajax, но я получил ошибку, как сообщение http://localhost/rating/56 (идентификатор проекта) 404 не найден Вот мой код

<form th:action="@{/rating/{id}(id=${projects.id})}" th:object="${rating}" method="post">
  <input  value="0" th:field="*{stars}"   hidden class="rating" data-glyphicon="0"
                                               id="stars">
</form>

ajax код здесь

 $(document).ready(function() {
        var id=/*[[${projects.id}]]*/
        $('#stars').on('rating.change', function(event, value) {
            event.preventDefault();
            $.ajax({
                type: "post",
                contentType: "application/json",
                url: "/rating/" + id,
                data : JSON.stringify(id),
                dataType : 'json',
                dataType: 'json',
                success: function () {
                    console.log(id)
                }
            })
        });
    });

вот мой контроллер пружины

  @RequestMapping(value = "/rating", method = RequestMethod.POST)
@ResponseBody
public String rating(@RequestParam(value = "id") Long id, Model model, RatingModel ratingModel){
    try {
        projectService.save(ratingModel,  id);
    } catch (Exception e) {
        log.error("You have already rated");
    }
    return "redirect:/project/show-project/" + id;

}

Как я знаю, весной я должен использовать @RestController для вызова ajax, но вместо этого я добавил аннотацию @ResponseBody с @RequestParams, но я не понимаю, почему эта реализация не работает

Пожалуйста, помогите

1 Ответ

0 голосов
/ 29 апреля 2020

потратив несколько часов на решение проблемы, я понял, что проблема была в весенней безопасности, то есть я добавил http.csrf().ignoringAntMatchers("/rating/**"). в свой класс SecurityConfig и мой ajax сработал, надеюсь, это поможет кому-то, кто столкнуться с той же проблемой

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