3

ストリーミング ブロックから HTTP エラー コードで応答しようとしていますが、Web サーバーが例外をスローします。このコンテキストでそれを行う適切な方法は何ですか?

/var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:803:in `throw':
uncaught throw :halt (ArgumentError)

私のコード:

require 'sinatra/base'
class App < Sinatra::Base
  get '/' do
    stream :keep_open do |out|
      error 401
    end
  end
  run! if app_file == $0
end
4

1 に答える 1

0

についての私の理解に基づいて#stream()、応答ヘッダーは既に送信されています。データ (本文) のストリーミングを続行し、接続を閉じることもできますが、既に送信された後にヘッダーを変更することはできないと思います。Sinatra YARD のドキュメントを調べて確認していますが、それがあなたの問題であると確信しています。

于 2014-01-07T07:44:27.933 に答える