简而言之,当使用带有 fetch api 的授权标头并遵循重定向时,Chrome、FireFox 和 Opera(在 Mac 上)在第二个请求中包含授权标头。但是,Safari (12.0.1) 没有。从fetch api 规范和问题 #553我的理解是应该包含标题。这是对 fetch 应该如何工作的正确理解吗?
这是我用于 Safari 的解决方法的简化代码,但我想知道是否我做错了什么导致了 Safari 的行为,或者是否有更好的解决方法。
export async function loadData(token) {
const opts = {headers: {Authorization: `Bearer ${token}`}, credentials: 'include', redirect: 'follow'};
let response = await fetch('/api/data', opts);
// Work around for Safari not including headers in redirected request
if (response.status === 401 && response.redirected) {
response = await fetch(response.url, opts);
}
if (response.ok) {
return response.json();
}
return null; …Run Code Online (Sandbox Code Playgroud) 我正在创建一个JNI来显示应用程序范围的菜单栏而不是JFrame特定的菜单栏.这样即使没有JFrame存在,我也可以显示菜单栏.我遇到了一个小障碍,在我的窗口菜单中,我无法弄清楚如何为最小化的窗口显示钻石.据我所知,在标准API中,只有三种状态可用On,Off和Mixed,其中mixed是破折号.有没有办法使用标准API显示最小化的钻石?或者我将不得不创建一个钻石图像并使用它?