我想使用REST调用来调用我的服务器端RPC模块函数。
我实际上已经有一些原样,但它给了我一个500内部服务器错误,我不知道如何排除故障。以下是我所拥有的。已为模块和项目设置启用RPC。 CORS是允许的。
rpc(moduleName: string, methodName: string, params: any[]): Promise<any> {
let data = {
jsonrpc: '2.0',
//id: 167972631107,
module: moduleName,
method: methodName,
params: params
};
let headers = new Headers({
'Content-Type': 'application/json'
});
return this.http.post(`http://127.0.0.1:8081/rpc/`, JSON.stringify(data), headers).toPromise();
}
答案 0 :(得分:1)
首先,检查模块是否具有从客户端执行的权限:
<?xml version="1.0" encoding="UTF-8"?>
<permissions>
<allow type="module" resource="myRPC" action="executeFromClient"/>
</permissions>
其次,500错误可能表示由于客户端发送的参数不正确而导致服务器端执行中出现未处理的错误,或者只是模块中的错误代码。您可以使用浏览器网络检查器验证POST请求发送的数据。或者在RPC代码中放置一个“调试器”跟踪语句来设置断点。如果服务器收到请求,执行将在断点处停止,然后您可以从那里检查运行时。