исключение HttpSecurity {403} при весенней загрузке ajax отправка массива в RequestMapping - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь опубликовать массив из ajax вызова, но получение ошибки {http 403} может быть связано с

.and (). ExceptionHandling (). AccessDeniedPage ("/ accessdenied");

, но аналогичные запросы, которые я делаю с других страниц, использующих модель, работают нормально, Infact, я пытался сделать все страницы опубликованными c все еще та же ошибка, приходящая

function selectedboxes() {
  var rows_selected = table.columns().checkboxes.selected()[0];
  console.log('data' + rows_selected);

  $.ajax({
    url: '/admin/ggtables',
    data: {
      rows_selected: rows_selected
    },
    type: "POST",
    sucess: function(data) {
      if (data.status == "SUCCESS") {
        console.log('submitted sucessfully');
      } else {
        console.log('Error Msg' + data.message);
      }
    },
    error: function() {
      console.log('error while submit');
    }
  });
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script>

<form id="#frm-alert" action="#" method="POST">
  <table id="alert" class="display" cellspacing="0" width="100%">
    <thead>
      <tr>
        <th><input name="select_all" value="1" id="alert-select-all" type="checkbox" /></th>
        <th>Server</th>
        <th>Process</th>
        <th>Is_Active</th>
      </tr>
    </thead>
  </table>
  <p><button type="submit">Submit</button></p>
</form>
<p>
  <button id="add" onclick="selectedboxes()">Send all selected processes</button>
</p>
        @RequestMapping(value="/ggtables",method=RequestMethod.POST)
    public String ggstablePage(@RequestParam(value= "rows_selected[]",required=false) Integer[] alerts) {    
        System.out.println("posted callled");
     // System.out.println("===="+alerts);
      return "redirect:/home";
    } 

это ajax запрос не достигает сопоставления запроса и выглядит как исключение отправки WebSecurityConfig, но я не вижу никакой ошибки / исключение на консоли.

chrome показывает 403, и я получаю страницу отказа в доступе, просто чтобы добавить, я могу видеть значение в переменной ajax на chrome консоли

, пожалуйста, помогите, есть ли способ проверить, почему появляется ошибка

1 Ответ

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

решено после добавления ниже.

<meta name="_csrf" content="${_csrf.token}"/>
<meta name="_csrf_header" content="${_csrf.headerName}"/>

//jQuery
var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");

$(document).ajaxSend(function(e, xhr, options) {
    xhr.setRequestHeader(header, token);
});

или отключить csrf .csrf (). Disable (). Cors ()

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