使用 fetch api 调用带有 keepalive 的 POST 请求时,预检请求失败

Vin*_*onz 6 api preflight fetch-api

我在Preflight request for request with keepalive specified is currently not supported使用keepalive启用的 fetch api 调用 POST 请求时遇到错误。任何帮助,将不胜感激 。我在beforeunload事件中调用这个 api 。

API 请求

  fetch(uri, {
    method: 'POST',
    headers: {
      'Content-type': options.headers.get('content-type'),
      'Authorization': options.headers.get('authorization')
    },
    body: JSON.stringify(interactionBody),
    keepalive: true
  }).catch((e) => {
    console.log(e);
  });
Run Code Online (Sandbox Code Playgroud)

Elh*_*zer 2

我找到了解决方法,直到Chrome 问题得到解决

使用时它起作用mode: 'same-origin'

fetch(uri, {
  method: 'POST',
  headers: {
    'Content-type': options.headers.get('content-type'),
    'Authorization': options.headers.get('authorization')
  },
  body: JSON.stringify(interactionBody),
  mode: 'same-origin',
  keepalive: true
})
Run Code Online (Sandbox Code Playgroud)