angular/离子处理成功200作为一个错误

我使用离子与谷歌云function,当我将数据返回到我的应用程序angular度默认为处理它作为一个错误。

这里是我使用节点callback我的云function:我已经尝试添加大括号到有效载荷,但它没有帮助。

function (error, response, body) { let payload = parser.toJson(body, parserOptions); console.log(payload) res.status(200).send(payload); } 

在控制台的日志中回复我得到:

 { ResponseCode: '0', referenceID: '22072017152436718488608295', ResponseMessage: 'SUCCESS', paymentURL: 'url', net_amount: '0', invoiceNumber: '0', status: '200' } 

我期望在Angular / Ionic代码中收到哪些数据。 在邮递员testing这个工作也是。

Angular Code:

 return this.http.post('/api', body, headers) .map(res => res.json()) .subscribe( data => { console.log('Success') console.log(data) }, err => { console.log('Error') console.log(err.status) console.log(err.message) } ) 

我得到错误状态为0和错误消息为空。

这看起来像是一个CORS错误, 在这里为angularjs类似地描述,在Angular 2的这个答案中有更多的解释

解决scheme是添加一个头部服务器端来处理CORS。