es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo convertir .ajax() a fetch()

Estoy intentando utilizar la biblioteca fetch de JavaScript para hacer una presentación de formulario a mi aplicación Django. Sin embargo, no importa lo que haga, sigue quejándose sobre la validación de CSRF.

Mi código fetch no funciona.

ajax

function myidLikeCom(params) {

    $.ajax({
        type: 'POST',
        url: '{% url "boards:likeComment" %}',
        data: {
            postid: params,
            csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val(),
            action: 'post'
        },
        success: function (json) {
            document.querySelector(`#myidLikeCom${params}`).innerText = "json['result']";
        },
        error: function (xhr, errmsg, err) {

        }
    });
}

fetch no funciona

function myidLikeCom(params) {
    let data= {
        postid: params,
        csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val(),
    }
    fetch('{% url "boards:likeComment" %}', {
        method: 'POST',
        body: data, 
    })
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que falta el csrfmiddlewaretoken en su solicitud fetch. Debe incluirlo en el cuerpo de la solicitud, como lo hizo en la solicitud ajax.

    function myidLikeCom(params) {
      let data = {
        postid: params,
        csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val(),
        action: 'post'
      }  
      fetch('{% url "boards:likeComment" %}', {
        method: 'POST',
        body: data, 
      })     
    }
    

Comments are closed.