我有这个 VUEJS/VUEJS 资源片段,它正在从 API 服务获取数据。
fetchData: function(name){
var self = this;
self.$http.get('http://www.apiservice.com/', {
params: {
city: name
},
}).then((response) => {
// success callback
toastr.success('Success!');
console.debug(response);
}, (response) => {
// error
toastr.error('Something went wrong!')
});
}
它总是会返回 200 OK 响应...所以我真的不知道如何显示 toastr.error
,如果它总是“成功”。
错误响应如下所示:{Response: "False", Error: "City not found!"}
。
我的问题
如何在 200 ok 返回的响应中获取 false
并抛出错误?
最佳答案
返回“未找到响应”作为 HTTP 200 似乎是糟糕的 API 设计,但如果您无法控制 API,则只需在成功函数中处理该问题即可。
将错误处理代码放入函数中并相应地调用它:
fetchData: function(name){
var self = this;
self.$http.get('http://www.apiservice.com/', {
params: {
city: name
},
}).then((response) => {
// success callback
if (response.Response === "False") {
onError(response)
} else {
toastr.success('Success!');
console.debug(response);
}
}, onError);
}
function onError(response) {
toastr.error('Something went wrong!')
}
关于javascript - API服务返回200,但实际上是404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39983570/