angular - 如何从与 Angular 4 集成的 odooRPC 响应中捕获错误代码

标签 angular odoo

我的 Angular 项目与 odooRPC API 集成,在我从 odooRPC 收到的 JSON 响应中,如下所示:

 error:{message: "Odoo Session Expired", code: 100, data: {,…}}
 code:100
 data:{,…}
 arguments:["Session expired"]
 debug : "Traceback (most recent call last):↵  raise http.SessionExpiredException("Session expired")↵SessionExpiredException: Session expired↵"
 exception_type:"internal_error"
 message :"Session expired"
 name : "odoo.http.SessionExpiredException"
 message : "Odoo Session Expired"
 id :null
 jsonrpc :"2.0"

这是发生异常或错误时来自 chrome 中网络选项卡的 OddoRPC 调用函数的响应,但我担心的是当我捕获此错误时我无法获得整个响应。我得到的只是调试参数中的错误。有什么方法可以获取'代码'或'消息'值

我们将不胜感激。

我用来在 angular 中调用 odoodRPC 函数的代码:

   return this.odooRPC.call('connect', 'getList',[],{}).catch((e: any) => {
         console.log(e);
        });

这里的 getList 是我从 Odoo 服务器调用的函数,当我在 catch block 中控制它时,我得到的只是来自“调试”参数的错误消息。

最佳答案

看起来您正在使用 Odoo jsonrpc 库之一来处理 Angular ,例如这个 https://github.com/agenterp/angular5-odoo-jsonrpc . 此库的函数 call 在向您发送错误之前处理响应。请参阅下面图书馆的 odoorpc.service.ts

的摘录
    errorObj.title = error.message;
    errorObj.message = error.data.debug.replace(/\n/g, "<br />");
    ...
    return Promise.reject(errorObj);

您可以根据您的用例调整库,或者直接使用 Angular 的 HttpClient 调用 odoo API。

关于angular - 如何从与 Angular 4 集成的 odooRPC 响应中捕获错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48739679/

相关文章:

node.js - 在nginx服务器上部署nodejs项目

在 Angular2 服务中多次发出 Http 请求

javascript - 在 Odoo 8 上运行客户端 JavaScript,而不加载新的(空白) View

xml - Odoo 8.0 : How to link menu items to correct views? 如何将表单 View 链接到正确的 TreeView ?

python - 以同一形式对两个模型中的两个 Float 字段求和 - Odoo v8

eclipse - 在 Ubuntu 12.04 LTS + Eclipse Juno 中运行/调试 Openerp7.0

angular - 如何使用 ng2-charts 以 Angular 2 显示饼图上的数据?

jquery - 完整日历中的resourceGroupField在 Angular 4中不起作用

angular - 使用 ng build --prod 删除所有评论和 console.logs,可能吗?

odoo - 迁移odoo,样式错误无法获取内容