使用Vue.js中的JavaScript处理GET 301/302响应

使用Vue.js中的JavaScript处理GET 301/302响应,vue.js,axios,vue-resource,Vue.js,Axios,Vue Resource,我需要用JavaScript打印一些301/302响应标题:我看到了Angular的很多答案,但我正在使用Vue.js来获得结果。嗯,这其实并不重要,因为这主要是一个JavaScript问题……我的意思是,我不仅仅对Vue.js-only解决方案感兴趣,它可以而且应该适用于任何地方。作为前端开发人员,我无法手动创建这样一个场景:我的项目在其自己的服务器中返回重定向,并且很难找到一个没有CORS限制的随机远程页面。更清楚地说,我需要获得301/302响应的状态代码和状态文本,以及重定向之前新页面的

我需要用JavaScript打印一些301/302响应标题:我看到了Angular的很多答案,但我正在使用Vue.js来获得结果。嗯,这其实并不重要,因为这主要是一个JavaScript问题……我的意思是,我不仅仅对Vue.js-only解决方案感兴趣,它可以而且应该适用于任何地方。作为前端开发人员,我无法手动创建这样一个场景:我的项目在其自己的服务器中返回重定向,并且很难找到一个没有CORS限制的随机远程页面。更清楚地说,我需要获得301/302响应的状态代码和状态文本,以及重定向之前新页面的位置,然后是重定向页面的完整标题。现在我只能检索最后一个,因为由vue资源创建的资源似乎没有将第一个存储在对象中。我在这里要问的是,是否有一种方法可以将重定向响应也存储在一个变量中,然后将两者都显示出来。我不知道切换到axios是否更合适——因为我对Vue.js还很陌生。我的组件的方法如下:

getRequest: function() {
  this.$http.get(this.url)
    .then(function(response) {
      if (response.ok) {
        if (response.status === 301 || response.status === 302) {
          // show the redirecting response
        }
      // show the redirected response
      }
    }

编辑:位于GitHub上;当您发送GET请求且响应显示301/302时,您应该能够看到三列而不是两列,其中第二列显示重定向响应头的详细信息。

您无法处理301或302状态,因为它们位于

if(response.ok)
块,这意味着状态为200。请尝试以下方法:

   getRequest: function() {
  this.$http.get(this.url)
    .then(function(response) {
      if (response.ok) {
      // show the redirected response
      }
      if (response.status === 301 || response.status === 302) {
          // show the redirecting response
      }
    }

我会尝试使用Axios,只是为了让生活更轻松,但这可能不会改变服务器给您的响应。但是,当您询问是否有将数据存储在变量中的方法,但不希望使用特定于Vue的方法时,我感到困惑。你可以为任何定义的变量编写响应,那么问题是什么呢?你是对的,我的意思是…Vue.js是我用于这个小应用程序的框架,但我不需要具体的解决方案:这是一个面试测试,我已经得到了这份工作,无论如何,我真的很想改进;我需要做的是在组件视图中打印第一个准备重定向的响应,只要最后一个已经重定向的响应……更清楚地说,第一个响应中301/302的状态和状态文本,然后从响应标题中提取200,并保存在我想在页面上显示的变量中,但我只得到了第二个,明白了。console.logresponse是否同时提供对象中的状态和状态文本?我99%确定axios的响应中有这些,但是已经有一段时间没有需要更多的数据了。这是你的意思吗?没错,埃里克!布莱斯,我想知道切换到axios是否能奏效。事情很简单:我将第二个案例移到响应上。好的,它似乎奏效了。我不明白那个回答。好吧,代表200的回答,我认为它更一般。非常感谢你!