Chrome中的401(未经授权),但不在IE中

时间:2016-03-10 09:23:33

标签: javascript google-chrome fetch redux unauthorized

我最近从使用jQuery转向使用Redux的isomorphic-fetch。在IE中运行时,它设法获取正常。但是,当我在Chrome中运行时,我会得到以下内容。

Failed to load resource: the server responded with a status of 401 (Unauthorized)

值得注意的是,web api确实启用了Windows身份验证。

这是执行fetch的代码:

export const fetchSearchResults = (name) => {
  return (dispatch) => {
    dispatch(requestSearchResults(name))
    return fetch(API URI HERE)
      .then(response => response.json())
      .then(json => {
        console.log('Fetch: ' + json.message.features.length)
        dispatch(receiveSearchResults(json))
      })
  }
}

1 个答案:

答案 0 :(得分:27)

我想你在服务器上有基于cookie的身份验证。在这种情况下,它可能与credentials的{​​{1}}密钥相关。在jQuery 中使用的XHR请求始终发送您的Cookie,但使用fetch您应该通过fetch选项

  • credentials如果您向同一来源(域名)提出请求
  • same-origin否则

像这样:

include

我认为它适用于IE,因为... fetch(API_URI_HERE, {credentials: 'same-origin'}) ... polyfill在引擎盖下使用了XHR请求。