问题标签 [fetch-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
15 回答
326318 浏览

ajax - HTTP 请求返回状态码 0 是什么意思?

当 JavaScript 网络调用(例如 fetch 或 XMLHttpRequest)或任何其他类型的 HTTP 网络请求失败并返回 HTTP 状态代码 0 时,这意味着什么?

这似乎不是一个有效的 HTTP 状态代码,因为其他代码在 HTTP 规范中是三位数。

我尝试完全拔掉网络作为测试。这可能是不相关的,但这导致了状态代码 17003 (IIRC),粗略的搜索表明这意味着“DNS 服务器查找失败”。

相同的代码在某些位置和系统上运行良好,但在某些环境中它会失败,状态代码为 0,并且没有提供 responseText。

这是对 Internet URL 的典型 HTTP POST。它不涉及 file:// ,我理解它可能会在 Firefox 中返回 0 表示成功。

0 投票
4 回答
43427 浏览

firefox - 为什么这个 CORS 请求只在 Firefox 中失败?

我正在使用凭据和预检请求实现 CORS,我有点困惑为什么预检请求在 Firefox 30 中始终失败但在 Safari(7.0.2)和 Chrome 35 中有效。我认为这个问题不同于“为什么经过身份验证的 CORS 请求的预检 OPTIONS 请求在 Chrome 中有效,但在 Firefox 中无效? ” 因为我没有收到 401,而是来自浏览器客户端的特定于 CORS 的消息:

“跨域请求被阻止:同源策略不允许读取http://myurl.dev.com上的远程资源。这可以通过将资源移动到同一域或启用 CORS 来解决。”

在不显示源代码的情况下,这就是我正在做的事情:

在服务器上

选项响应的标题:

  • Access-Control-Allow-Origin:[[从此处的请求复制来源]]
  • 访问控制允许方法:“POST GET OPTIONS”
  • 访问控制允许标头:“X-Requested-With”
  • 访问控制允许凭据:“真”

POST 响应的标头:

  • Access-Control-Allow-Origin:[[从此处的请求复制来源]]
  • 访问控制允许凭据:“真”

在浏览器客户端中:

根据规范,这将触发一个 OPTIONS 预检请求,该请求需要在其响应中包含 CORS 标头。我已经多次阅读 W3C 规范,但我无法确定我做错了什么,如果有的话,在那个预检响应中。

0 投票
4 回答
72265 浏览

javascript - fetch(),如何发出非缓存请求?

使用fetch('somefile.json'),是否可以请求从服务器而不是从浏览器缓存中获取文件?

换句话说,fetch()是否可以绕过浏览器的缓存?

0 投票
1 回答
902 浏览

javascript - 为什么新的 js Fetch 标准禁止响应头名称为“Set Cookie 1 / 2”?

我很惊讶https://fetch.spec.whatwg.org/标准不允许从服务器设置 cookie。我预计 New Fetch 将成为 XHR 的绝佳替代品,但是......

有人知道它的任何官方答案吗?提前致谢!

0 投票
5 回答
61725 浏览

javascript - fetch: Reject promise with JSON error object

I have an HTTP API that returns JSON data both on success and on failure.

An example failure would look like this:

What I want to achieve in my JavaScript code is something like this:

0 投票
2 回答
4743 浏览

html - html 获取多个文件

我想使用新的 fetch api ( https://fetch.spec.whatwg.org/ ) 一次获取多个文件。原生可以吗?如果是这样,我应该如何利用承诺?

0 投票
0 回答
851 浏览

blob - 获取数组缓冲区随机行为

我想使用 fetch api(https://fetch.spec.whatwg.org/)直接获取 arrayBuffer 。返回数据后,我想使用数组缓冲区。

似乎有时 arrayBuffer() 有效,有时则无效。不起作用我的意思是有时它会返回一个空数组。大多数时候它不起作用。

如果我调用 blob() 并通过 FileReader 将其转换为数组缓冲区,它总是可以工作的。

还有现场演示: http ://codepen.io/nicolasrannou/pen/OVLyjX

我做错了什么还是一个错误?

谢谢,尼古拉斯

0 投票
16 回答
1151403 浏览

javascript - 获取:POST JSON 数据

我正在尝试使用fetch发布一个 JSON 对象。

据我了解,我需要将一个字符串化对象附加到请求的正文中,例如:

使用jsfiddle 的 JSON 回显时,我希望看到我发{a: 1, b: 2}回的对象 (),但这不会发生 - chrome devtools 甚至没有将 JSON 显示为请求的一部分,这意味着它没有被发送。

0 投票
1 回答
10500 浏览

javascript - 如何将 window.fetch() 与 httpOnly cookie 或基本身份验证一起使用

我在 Firefox 和 Chrome 中使用window.fetch() 。由于某些原因, fetch() 不发送任何 cookie。现在这不是问题,因为我可以使用

但这不适用于 httpOnly cookie。

0 投票
1 回答
2598 浏览

javascript - 我们如何检查请求的响应是否来自 Service Worker

在 HTTP 状态代码旁边的 Google Chrome 控制台中,Request我们有 info (from ServiceWorker)

Request以某种方式知道Response来自 ServiceWorker 吗?比较date可能Response Headers