You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ReactJS接入Odoo遇CORS跨域拦截问题,如何解决?

解决Odoo与React前端的CORS跨域问题

方案1:修改Odoo服务器配置添加CORS头

浏览器会拦截跨域请求,但Postman不受浏览器CORS策略限制,所以能正常请求。你可以直接修改Odoo的配置文件(通常为odoo.conf),添加CORS允许规则:

# 允许所有域名跨域(开发环境可用)
http_cors = *

# 生产环境建议限制特定域名
http_cors = https://你的前端域名.com

修改后重启Odoo服务器,服务器会在响应中携带Access-Control-Allow-Origin头,浏览器就不会拦截请求了。

方案2:使用反向代理(生产环境推荐)

如果不想直接修改Odoo配置,可通过Nginx等反向代理工具统一处理请求,避免跨域。示例Nginx配置:

server {
    listen 80;
    server_name 你的域名.com;

    # 处理前端静态文件
    location / {
        root /你的React项目打包路径;
        try_files $uri $uri/ /index.html;
    }

    # 转发Odoo API请求
    location /odoo-api {
        proxy_pass http://localhost:8069;
        proxy_set_header Host $host;
        rewrite ^/odoo-api/(.*)$ /$1 break;
    }
}

随后将React代码中Odoo的host改为/odoo-api,前端请求会通过Nginx转发,自然消除跨域问题。

方案3:开发环境临时用React内置代理

本地开发时,直接在React项目的package.json中添加代理配置:

"proxy": "http://localhost:8069"

然后修改登录函数的Odoo配置:

const odoo = new Odoo({
  host: '', // 留空或写 '/'
  port: '', // 无需填写端口,代理会自动转发
  database: db,
  username: userName,
  password: password,
});

重启React开发服务器后,所有API请求会自动转发到Odoo,绕开CORS限制。


内容的提问来源于stack exchange,提问作者mohamed ali mrad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:20:30