【问题标题】:Angular/Ionic handling successful 200 as an errorAngular/Ionic 处理成功 200 作为错误
【发布时间】:2017-12-28 12:13:24
【问题描述】:

我将 ionic 与谷歌云功能一起使用,当我将数据返回到我的应用程序时,角度默认将其作为错误处理。

这是我使用节点回调的云函数: 我已经尝试将花括号添加到有效负载中,但没有帮助。

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 代码中收到哪些数据。 在 Postman 中测试也可以。

角度代码:

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 和错误消息 null。

【问题讨论】:

  • 您能否直接订阅该请求(即删除.map)并查看是否可以为您提供更多信息 - 可能是由于某种原因无法解析响应
  • @0mpurdy 刚试了下,没有.map 还是一样的错误
  • 您可以通过console.log(err) 获取更多信息吗?
  • @0mpurdy 只是一个错误对象,代码为 0,消息为空。
  • 好的,我认为它由this answer 回答,它适用于 angularjs,但它可能仍然是一个 CORS 错误,希望这足以让您解决问题!与角度 2 相关的问题是 this one

标签: node.js angular firebase ionic-framework google-cloud-functions


【解决方案1】:

这看起来像是similarly here for angularjs 中描述的 CORS 错误,this answer for Angular 2 中有更多解释

解决方案是添加一个标头服务器端来处理 CORS。

【讨论】:

    猜你喜欢
    • 2019-04-02
    • 2012-02-12
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    • 2015-11-08
    • 1970-01-01
    • 2020-06-11
    • 2023-03-06
    相关资源
    最近更新 更多