Javascript 如何从AJAX向Odoo 10自定义模块控制器发送/获取请求?(由CORS策略阻止)

Javascript 如何从AJAX向Odoo 10自定义模块控制器发送/获取请求?(由CORS策略阻止),javascript,python,ajax,cors,odoo-10,Javascript,Python,Ajax,Cors,Odoo 10,我正在使用带有自定义模块的ODOO10,我创建了这个简单的控制器。当我访问http://127.0.0.1:8069/cmodule/cmodule从浏览器中选择。它显示返回字符串 我尝试了GET和POST,但得到了相同的错误结果。关于CORS策略阻止请求之类的东西。我的谷歌能力还没有真正找到解决这个问题的方法或任何替代方案 但是,当我试图通过AJAX从用PHP/javascript编写的其他东西中请求时。我在javascript上遇到以下错误: CORS策略已阻止从源“”访问“”处的XMLHt

我正在使用带有自定义模块的ODOO10,我创建了这个简单的控制器。当我访问
http://127.0.0.1:8069/cmodule/cmodule
从浏览器中选择。它显示返回字符串

我尝试了GET和POST,但得到了相同的错误结果。关于CORS策略阻止请求之类的东西。我的谷歌能力还没有真正找到解决这个问题的方法或任何替代方案

但是,当我试图通过AJAX从用PHP/javascript编写的其他东西中请求时。我在javascript上遇到以下错误:

CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头

这是来自odoo的错误:

2020-04-30 08:18:13401 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);
                }
            });

当您尝试不同的事情时,请尝试简单的身份验证

import odoo.addons.web.controllers.main as main
class Home(main.Home):
    @http.route('/web/session/authenticate', type='json', auth="none" ,cors='*')
    def authenticate(self, db, login, password, base_location=None): 
    request.session.authenticate(db, login, password)
        return request.env['ir.http'].session_info()

我在从IOS访问它时也遇到了同样的错误,但这次与postman的合作很好,
这段代码工作得很好,你在这段代码中做了每一件事,但仍然

哦,哇,它工作得很好,结果我只需要将请求与数据库相关联,所以我只添加了request.session.authenticate('db_name','','',''),请求sudo处理了其余的。。。非常感谢您(幸运的是,我帮了您:)