【发布时间】:2020-05-03 13:32:31
【问题描述】:
我需要使用 JavaScript 打印一些 301/302 响应标头:我看到了很多关于 Angular 的答案,但我正在使用 Vue.js 来获得结果。好吧,这并不重要,因为它主要是一个 JavaScript 问题……我的意思是,我不只是对 Vue.js- 解决方案感兴趣,它可以而且应该在任何地方工作。作为前端开发人员,我无法手动创建一个场景,让我的项目在自己的服务器中返回一个重定向,并且很难找到一个没有 CORS 限制的随机远程页面。为了更清楚,我需要在重定向之前获得status 代码和statusText 的301/302 响应(以及新页面的Location),然后是重定向页面的完整标题。现在我只能检索这些最后一个,因为vue-resource 创建的the default this.$http.get(); request 似乎没有将第一个存储在对象中。我在这里要问的是,是否有办法将重定向响应也存储在变量中,然后同时显示两者。我不知道切换到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
}
}
编辑:the sources for this project 在 GitHub 上;当您发送 GET 请求并且响应显示 301/302 时,您应该能够看到三列而不是两列,其中第二列显示重定向响应标头的详细信息。
【问题讨论】:
-
我会尝试使用 Axios 只是为了让生活更轻松,但这可能不会改变服务器给你的响应。但是,当您询问是否有办法将数据存储在变量中但不想要 Vue 特定的方式时,我会感到困惑。您可以将响应写入任何已定义的变量,那么问题是什么?
-
你说得对,我的意思是...... Vue.js 是我用于这个小应用程序的框架,但我不需要特定的解决方案:它是一个求职面试的测试(无论如何,我已经得到了我真正想要改进的工作;我需要做的是在组件视图中打印第一个准备重定向的响应,只要最后一个重定向的响应……更清楚,
status和statusText来自两者(第一个响应中的 301/302 , 然后 200) 应该从响应标题中获取并保存在我想在页面上显示的变量中,但我只得到了第二个。 -
知道了。
console.log(response)是否给你对象中的状态和状态文本?我有 99% 的把握这些都在axios响应中,但已经有一段时间了,因为需要的不仅仅是数字。 -
没错,埃里克!我想知道切换到
axios是否可以解决问题,布莱斯。
标签: vue.js axios vue-resource