Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
4126 Tampilan

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
Buang
Penulis

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

Post Terkait Replies Tampilan Aktivitas
1
Mei 23
2904
1
Mei 23
5804
0
Jul 21
4020
1
Okt 15
9923
0
Mei 23
3023