我的 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/