Как обновить модель из ajax с помощью фреймворка rest (проблема csrf ??) - PullRequest
0 голосов
/ 18 февраля 2020

Я хочу обновить строку таблицы с ajax

Из автоматически сгенерированной формы (оставшейся частью framweorks) публикация и обновление работает правильно.

Однако с ajax показывается

"POST /api/issues/372/ HTTP/1.1" 403 58 ошибка

Я погуглил и обнаружил, что это связано с csrt.

Однако Как я могу правильно отправить json ???

var json = {
         "id": 37;
         "name": "This is my new name",
         "color": "#dddddd"
};


$.ajax({
        type:"POST",            
        url: "{% url 'issues-detail' 372 %}",    
        data:JSON.stringify(json),  
        contentType: 'application/JSON', 
        dataType: "JSON",       
        success: function(response) {  
            console.log(response);
        },
        error: function(response) {  
            console.log(response);      
        },
        complete: function() {   
            console.log("complete");
        }
});

1 Ответ

1 голос
/ 18 февраля 2020

вы можете добавить этот код в ваш js файл в функции document.ready

$(document).ready(function() {
  $.ajaxSetup({

    beforeSend: function(xhr, settings) {
      if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) 
      {
        // Only send the token to relative URLs i.e. locally.
        xhr.setRequestHeader("X-CSRFToken", getCookie("csrftoken"));
      }
    }
  });
});

Для отправки запроса POST нам нужно установить токен csrf.

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