我有一个应用程序,其中Rails作为后端,React作为前端。我正在尝试在服务器端处理Stripe errors,并通过更新客户端的状态来呈现任何错误。
此处是我的控制器方法中的代码:
def create
# here some code to handle payment...
rescue Stripe::CardError => e
render json: e.json_body[:error][:message], status: 422
end
和处理响应的我的react函数:
axios.post("/orders"})
.then(res => {
this.setState({
hasOrdered: true,
orderSuccess: true,
loading: false
});
})
.catch(err => {
console.log(err);
this.setState({
loading: false,
error: err
});
});
console.log(err)
的输出很简单:Error: Request failed with status code 422
,而我通过网络获得的响应是:
我想要的是用“您的卡资金不足”更新状态。
我该怎么做?
答案 0 :(得分:1)
确定解决方案:我必须访问err.response.data
:
.catch(err => {
console.log(err.response.data);
this.setState({
loading: false,
error: err.response.data
});