将 Ionic 与 ERP odoo 连接起来
Posted
技术标签:
【中文标题】将 Ionic 与 ERP odoo 连接起来【英文标题】:Connect Ionic with ERP odoo 【发布时间】:2018-09-10 15:47:52 【问题描述】:我正在使用 Ionic 3 应用程序。我的应用程序的后端是Odoo v11。 当使用angular4-odoo-jsonrpc 将我的移动应用程序与Odoo v11 连接时,我必须面对以下错误。
无法加载http://127.0.0.1:8069/web/session/authenticate:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost:8100' 因此不允许访问。
这是我的代码:
import OdooJsOnProvider from '../../providers/odoo-js-on/odoo-js-on';
import Component from '@angular/core';
import AlertController, IonicPage, Loading, LoadingController, NavController, NavParams from 'ionic-angular';
import UtilsProvider from "../../providers/utils/utils";
import * as Ng6OdooRPCService from 'angular6-odoo-jsonrpc';
import OdooRPCService from 'angular4-odoo-jsonrpc'
@Component(
selector: 'page-home',
templateUrl: 'home.html'
)
export class HomePage
constructor(
public navCtrl: NavController,
private odooRPC: OdooRPCService
)
this.odooRPC.init(
odoo_server: "http://127.0.0.1:8069",
http_auth: "admin:admin" // optional
);
this.odooRPC.login('odoo', 'admin', 'admin').then(res =>
console.log('login success');
).catch(err =>
console.log('login failed', err);
)
【问题讨论】:
【参考方案1】:两种方法。
通过在后端管理 CORS 来允许您的 localhost 和端口 (8100) 访问
或
设置代理https://github.com/angular/angular-cli/blob/master/docs/documentation/stories/proxy.md
【讨论】:
我如何通过在后端管理 CORS 来允许我的本地主机和端口 (8100) 访问【参考方案2】:您必须从后端管理CORS
。
阅读更多关于CORS
here的信息。
如果您想测试您的移动应用程序,请避免使用 CORS
将此 Extension 添加到 Google Chrome
。但是这种类型的扩展只用于测试。
【讨论】:
我使用这个命令 google-chrome --disable-web-security 从浏览器停止 CORS 但仍然是同样的错误【参考方案3】:在您的后端允许这样的 CORS:
@http.route('/route/<id>', type='http', cors='*', csrf=False, auth="user")
def method(self, id, **kwargs):
cors='*'
【讨论】:
以上是关于将 Ionic 与 ERP odoo 连接起来的主要内容,如果未能解决你的问题,请参考以下文章
独家功能分享:免费开源ERP Odoo 支持SQL在线的BI报表工具设置