Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
4915 Visualizzazioni

My problem is that I cannot submit data to my controller from JS widget because it is "missing" a csfr token. But I've tried having a hidden field for the token and getting it from web.core. Nothing works!


Error in log:

 odoo URLs are CSRF-protected by default (when accessed with unsafe HTTP methods).


JS:

var formData = new FormData();
form.find('input').each(function() {
var el = $(this);
formData.append(el.attr('name'), el.val())

});
formData.append('csrf_token', core.csrf_token);
console.log(Object.fromEntries(formData));
$.ajax({
url: '/some-url/add',
data: formData,
processData: false,
contentType: false,
type: 'POST',
success: function (data) {
console.log('Submission was successful.');
console.log(data);
},
error: function (data) {
console.log('An error occurred.');
console.log(data);
},
});


Py:

@http.route(['/some-url/add'], type='http', auth="public", method=['POST'])

What I'm doing wrong?


Avatar
Abbandona
Autore

After changing controller type to json so it thrown the wrong type error and changing it back to http it magically started working!

Post correlati Risposte Visualizzazioni Attività
1
mag 23
3490
1
mag 23
6604
0
lug 21
4575
1
ott 15
10508
0
mag 23
3822