콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다

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?


아바타
취소
작성자

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

관련 게시물 답글 화면 활동
1
5월 23
3046
1
5월 23
6002
0
7월 21
4141
1
10월 15
10069
0
5월 23
3203