javascript - API服务返回200,但实际上是404

标签 javascript vue.js vue-resource

我有这个 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/

相关文章:

javascript - 图像未出现在 hostgator 中但出现在 localhost 中

javascript - 什么样的数据应该被缓存?

javascript - 在 JavaScript 中将整数转换为数组的简单方法

javascript - 添加选项以增加 YouTube 视频的低音

javascript - 如何以两个不同的 Angular 在两个方向上旋转图像?

javascript - 推送到组件页面Vue时的递归

javascript - 有什么方法可以对 Vue.js 转换进行单元测试

javascript - 很难在 Vue js 中更改背景颜色

javascript - 如何在Vue中导入本地存储的xml文件并进行编辑?

vuejs2 - VueJs 开发工具面板未显示