小编Jon*_*hon的帖子

fetch 的重定向和授权标头的预期行为是什么?(Safari 与其他 Mac 浏览器的行为不同)

简而言之,当使用带有 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)

safari redirect webkit http-authentication fetch-api

5
推荐指数
0
解决办法
865
查看次数

如何指定在NSMenuItem(最小化窗口指示器)中显示菱形?

我正在创建一个JNI来显示应用程序范围的菜单栏而不是JFrame特定的菜单栏.这样即使没有JFrame存在,我也可以显示菜单栏.我遇到了一个小障碍,在我的窗口菜单中,我无法弄清楚如何为最小化的窗口显示钻石.据我所知,在标准API中,只有三种状态可用On,Off和Mixed,其中mixed是破折号.有没有办法使用标准API显示最小化的钻石?或者我将不得不创建一个钻石图像并使用它?

java macos java-native-interface cocoa objective-c

2
推荐指数
1
解决办法
467
查看次数