Vue.http.get w/ authorization - 发出 2 个请求并仅在 iOS 上失败
Vue.http.get w/ authorization - makes 2 requests and fails on iOS only
我必须使用不记名令牌发出经过身份验证的 HTTP 请求。这在我测试过的所有东西上都能完美运行...除了 some iOS 设备。
fetchWithToken : function( endpoint, token ){
return Vue.http.get( urlBase + endpoint, {
headers : {
Authorization : 'Bearer ' + token
}
});
},
据我所知,请求被发送了两次。请注意,此函数仅被调用一次(通过调试验证),但服务器收到 2 个请求。第一个请求包含令牌并成功授权。第二个没有令牌并失败,将该失败返回给我的应用程序的其余部分。
一次调用的两个 HTTP 请求让我想到了 CORS 预检请求。然而,它是同一个域,上面那个函数中的 urlBase 变量是一个相对地址 ('/api/'),而不是完整的 URL。
iOS 是否强制 CORS?如果是这样,为什么在未经授权的情况下发送第二个请求 header 而不是预检请求?
错误的事件组合。服务器(一个 symfony 应用程序)正在为没有以斜杠结尾的端点执行 301 重定向。显然 iOS 是唯一不允许授权 header 继续进行 301 重定向的用户代理。所以第一个请求有令牌,它是 301'ed,而第二个请求没有。基本上需要 3 个小时的记录和跟踪一切才能了解我需要用 /.
结束我的端点调用
我必须使用不记名令牌发出经过身份验证的 HTTP 请求。这在我测试过的所有东西上都能完美运行...除了 some iOS 设备。
fetchWithToken : function( endpoint, token ){
return Vue.http.get( urlBase + endpoint, {
headers : {
Authorization : 'Bearer ' + token
}
});
},
据我所知,请求被发送了两次。请注意,此函数仅被调用一次(通过调试验证),但服务器收到 2 个请求。第一个请求包含令牌并成功授权。第二个没有令牌并失败,将该失败返回给我的应用程序的其余部分。
一次调用的两个 HTTP 请求让我想到了 CORS 预检请求。然而,它是同一个域,上面那个函数中的 urlBase 变量是一个相对地址 ('/api/'),而不是完整的 URL。
iOS 是否强制 CORS?如果是这样,为什么在未经授权的情况下发送第二个请求 header 而不是预检请求?
错误的事件组合。服务器(一个 symfony 应用程序)正在为没有以斜杠结尾的端点执行 301 重定向。显然 iOS 是唯一不允许授权 header 继续进行 301 重定向的用户代理。所以第一个请求有令牌,它是 301'ed,而第二个请求没有。基本上需要 3 个小时的记录和跟踪一切才能了解我需要用 /.
结束我的端点调用