Я использую Odoo 10 с пользовательским модулем, и я создал этот простой контроллер. Он отлично работает, когда я захожу http://127.0.0.1:8069/cmodule/cmodule
из браузера. Это показывает возвращаемую строку.
Я пробовал и GET и POST, но я получаю тот же результат ошибки. Что-то о политике CORS, блокирующей запрос или что-то в этом роде. Мои силы в Google не нашли никакого способа или альтернативы для этого.
Но когда я пытаюсь сделать запрос через AJAX из моей другой вещи, написанной на PHP / javascript. Я получаю эту ошибку на javascript:
Доступ к XMLHttpRequest в 'http://127.0.0.1: 8069 / cmodule / cmodule / ' from origin 'http://127.0.0.1 'был заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок' Access-Control-Allow-Origin '.
И эта ошибка от odoo:
2020-04-30 08: 18: 13,401 23156 ИНФОРМАЦИЯ? werkzeug: 127.0.0.1 - - [30 / Apr / 2020 08:18:13] "GET / cmodule / cmodule / HTTP / 1.1" 404 -
Вот простой код из моего Odoo- 10 пользовательских модулей контроллера:
# -*- coding: utf-8 -*-
from odoo import http
class Cmodule(http.Controller):
@http.route('/cmodule/cmodule/', auth='public', cors='*')
# I also tried here auth='none' and method='POST' and method='GET'
def index(self, **kw):
datas = http.request.env['product.product'].sudo().search(
[('product_group', '=', 'assort')], limit=50)
dstr = ','.join(datas )
# {'ret_val': dstr }
# I return {'ret_val': dstr } when doing POST request from AJAX.
return dstr
А вот код из моего AJAX запроса:
$.ajax({
type: "GET",
// type: "POST",
url: "http://127.0.0.1:8069/cmodule/cmodule/",
// data: { data: 'HELLO' },
success: function(response){
console.log(response);
}
});