问题标签 [respond-with]
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.
ruby-on-rails - 在将 Rails 从 4.1 更新到 5.2 并添加响应者 gem 后,为我的控制器获取“未定义的方法 `flash`”
我正在将 rails 从 4.1 更新到 5.2 我添加了responders
gem,所以 respond_with 存在。我的 ApplicationController 现在看起来像这样:
class ApplicationController < ActionController::API
self.responder = ApplicationResponder
respond_to :html
但是,当我打电话时,respond_with
我收到此错误:
我在响应者自述文件中注意到有一个 flash 响应器,但是我不想使用它。
download - 使用 service worker 和 ReadableStream 下载文件时的问题
我做了一些测试,并且在流式传输要下载的文件时遇到了一些问题(在响应中将 Content-Disposition 标头设置为附件)。以下行为对 Firefox 和 Chrome 都很常见,我将“浏览器”称为执行代码的实体,该代码不是由用户编写的代码。
当响应被发回时,流立即开始被消耗
event.respondWith()
,这意味着虽然弹出窗口似乎询问用户他是否想要以及在哪里下载文件,或者他是否只是想拒绝下载,但流正在被消耗并且不停地拉数据。这似乎是一种疯狂的行为,是有意的,还是两个浏览器中的错误?如果用户拒绝下载或接受并稍后取消它,浏览器就会停止消费流,仅此而已。它从不调用
cancel()
它的ReadableStreamDefaultReader
实例,也不调用releaseLock()
. 因此,流只是从底层源中提取数据,直到队列已满,然后在不知道任何情况下等待。我们应该如何处理它?
来自 Streams 规范(https://streams.spec.whatwg.org/#rs-cancel):
cancel 方法取消流,表示消费者对流失去兴趣。提供的原因参数将提供给底层源的 cancel() 方法,该方法可能使用也可能不使用它。
所以我认为浏览器应该在它的实例上调用取消,ReadableStreamDefaultReader
但 Firefox 和 Chrome 都没有。
- 此外,如果我在流的底层
ReadableStreamDefaultController
实例上调用错误方法,浏览器仍然不会释放锁。