GET请求在邮递员中有效,但对于Axios失败

时间:2019-11-11 13:45:25

标签: vue.js axios postman

我正在使用相同的标头(包括Bearer)将GET请求发送到相同的端点,但是当我从Postman调用时得到200和正确的JSON作为结果时,当我在我的(Vue中使用Axios发送请求时)项目,我得到302。

在localhost:8080上运行的本地项目的调用(如果有用)如下:

  const { authToken, userID } = store.getters.authUser
  const config = {
    method: 'get',
    url: '/' + userID,
    headers: {
      Authorization: `Bearer ${authToken}`,
      'Content-Type': 'application/json'
    }
  }
  axios(config)
    .then(res => {
      console.log(res)
      return res
    })
    .catch(e => {
      console.log(e)
    })

在邮递员中,我所要做的就是使用相同的url创建一个GET请求,并且我在标头中添加的所有内容都是“ Bearer ...”。

我从axios得到的错误是:

Error: Network Error
    at createError (createError.js?2d83:16)
    at XMLHttpRequest.handleError (xhr.js?b50d:87)

响应状态为302,知道这里发生了什么事吗?

userIDauthToken的值都存在,并且等于邮递员使用的相同值,URL也相同

1 个答案:

答案 0 :(得分:0)

如你所说

  

请求转到另一台服务器

我的最佳猜测是,执行axios调用的页面与axios请求中请求的资源位于不同的域中。这意味着该请求是跨源请求。在那种情况下,浏览器将执行preflight request(由于存在Authorization标头,因此在CORS意义上,GET请求不是simple request)。在这种情况下,您的资源需要支持CORS,这意味着您需要设置Access-Control-Allow-Origin标头,并且需要为预检请求处理OPTIONS HTTP方法。