问题标签 [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 投票
1 回答
93 浏览

service-worker - Service Worker 查询缓存算法是否允许表达式匹配 URL 路径?

我发现了一个使用忽略部分 url 路径(路径不是ignoreSearch)的表达式来匹配请求 url 的用例。

该用例用于响应式设计中使用的图像处理服务,其中图像的尺寸编码在 url 路径中。这在这些类型的服务(Cloudinary、Firesize 甚至 Lorempixel)中很常见。

我注意到每隔一段时间,其中一个维度组件将请求将关闭一个像素。所需的尺寸是从客户端计算出来的——错误的来源在这里四舍五入——但是服务工作者缓存可能是这种变化的一个优雅的解决方案。但是,此舍入问题会导致缓存未命中,因为我无法指定可以忽略部分 url 路径。

url 表达式匹配会成为规范的一部分吗?一般来说,“使用 url A 获取,使用 url B 缓存放置/匹配”模式是否可以增长?

我知道解决此问题的解决方法与 ignoreSearch 的当前解决方法相同(直到它的实现),其中您使用一个 url 获取但使用另一个缓存。我只是想知道 url 路径表达式匹配是否会成为规范的一部分,或者是否考虑了 url 表达式匹配用例。我在权威规范中没有看到任何证据。

提前感谢您的任何见解。

0 投票
1 回答
16632 浏览

javascript - async / await 不能与 fetch 结合使用

我正在尝试将 ES7 async/awaitfetch. 我知道我很接近,但我无法让它工作。这是代码:

我使用如下:

演示

catch出于某种原因,我总是带着信息进入

有什么建议我做错了吗?

更新:正如评论中所建议的,这可能是一个问题fetch,所以我尝试了一个简化的(ES5)版本:

并且仍然不起作用:(但是,如果我替换 fetch 它可以工作:

0 投票
2 回答
5092 浏览

javascript - 响应状态 = 0 使用 fetch polyfill 模式:'no-cors'

我正在使用带有“no-cors”模式的fetch polyfill 并获得响应状态 0。在开发人员工具中,我可以看到响应具有请求的数据。

客户端代码:

Beckend nodejs (Express.js) 简化的响应处理程序:

知道我做错了什么吗?谢谢!

0 投票
1 回答
327 浏览

request - 结构化克隆 Fetch API 请求对象的最佳选择是什么?

我正在尝试存储受 CSRF 保护的(查询字符串 + cookie)API POST 请求,以便稍后在 web 应用重新联机时重播。

为此,我想将请求对象(Fetch API)保存在 IndexedDB 中,但 IDBObjectStore.put 失败并出现 DataCloneError “无法克隆对象”。

Request 对象有一个简单的 JSON 主体,没有二进制数据,只有字符串。
这是在服务工作者(网络工作者)环境中运行的。

结构化克隆算法不会克隆请求对象有什么原因吗?[回答: 是] 如果是这样,我最好的选择是脱水/再水化这个对象来代替结构化克隆?

我真的想避免必须知道/访问 Request 对象的各个属性。我需要的请求部分是 url、标头、正文和 cookie(但同样,我不希望代码必须知道这些)。

提前感谢您的任何建议。

0 投票
0 回答
191 浏览

javascript - 无法将 FormData 传递给 fetch 的 put 请求

所以我使用 github/fetch 对我的 API 进行 xhr 调用。Post 和 get 工作正常,但似乎 put 调用无法正确传递 FormData。

它们在我的 xhr 调用中作为表单数据传递。这应该是 x-www-urlencoded。当我用数据对我的 url 进行编码时,一切正常。

我正在设置这样的类型:
options.headers['Content-Type'] = 'application/x-www-form-urlencoded';

这可能是什么?

0 投票
1 回答
87 浏览

javascript - 查看服务工作者中的请求是否成功

我的服务人员中有以下代码:

但是,它在开发控制台中做了一些奇怪的事情,并且似乎使脚本异步加载而不是同步加载(在这种情况下这很糟糕)。

fetch(event.request)有什么方法可以在不手动调用的情况下监听请求何时完成?

例如:

0 投票
1 回答
5022 浏览

javascript - 真的没有办法从失败的 js 获取请求中获取响应正文吗?

如果请求失败(400),新的 js fetch API会导致 promise 失败:

当这种情况发生时,真的没有办法得到响应体吗?例如检查错误代码。

编辑:我创建了一个 js 小提琴:https ://jsfiddle.net/4x4xLwqo/ 调用这个 mockbin 端点:http ://mockbin.org/bin/d87acbb0-526e-4d66-aea4-b827d9c35031/view

编辑 2:更新 jsfiddle 以使用更好的端点:https ://jsfiddle.net/4x4xLwqo/2/

0 投票
1 回答
14257 浏览

javascript - try..catch 没有捕捉到异步/等待错误

也许我误解了如何async/await从像这样的文章中捕获错误https://jakearchibald.com/2014/es7-async-functions/和这个http://pouchdb.com/2015/03/05/taming- the-async-beast-with-es7.html,但我的catch块没有捕获 400/500。

如果有帮助,请在 codepen 上举例

0 投票
1 回答
2179 浏览

fetch - Update dynamic data in service-worker.js

I have the below data coming in form of array from a url.

service-worker.js it has the above url in fetch()

I am trying to see the above array data coming from that particular url in console.log("j",j);. but it shows undefined. How can i get dymanic data in sw.js Please Guide.

0 投票
7 回答
52872 浏览

fetch - 如何在 PHP 中使用 fetch() API POST 方法获取数据?

我正在尝试使用fetch()API POST 方法来获取 PHP 中的 POST 数据。

这是我尝试过的:

PHP:

这个对吗?