私のJavaScriptアプリケーションでは、の長さを決定してから、をAjaxでダウンロードする必要があります。通常これは問題ではありません。HEADリクエストを作成してContent-Length
を抽出するだけです。クロスドメインAjaxリクエストからContent-Lengthヘッダーにアクセスするにはどうすればよいですか?
var xhr = $.ajax({type:"HEAD", url: "http://own-domain/file.html"})
xhr.getResponseHeader("Content-Length")
// "2195"
ただし、リソースはクライアントとは別のサーバーに保存されます。 (私が管理するサーバー)。だから私はCORSを使ってクロスドメインのajaxリクエストを作成しており、HEADリクエストとGET/POSTリクエストのカスタムフッタを要求するプリフライトリクエストに応答するようにサーバを設定しています。
メインに大きな働いているが、私はCORSで作業する際の方法は、HEAD応答からContent-Length
を抽出見つけることができないよう
:私は様々なヘッダを設定して実験してきた
var xhr = $.ajax({type:"HEAD", url: "http://other-domain/file.html"})
xhr.getResponseHeader("Content-Length")
// ERROR: Refused to get unsafe header "Content-Length"
プリフライトまたはレスポンスで、
Access-Control-Expose-Headers: Content-Length
このような仕様では、利用可能にする必要があるようです。しかし、私が何をするにしても、私はContent-Lengthヘッダをクライアントに利用可能にすることはできません。助言がありますか?
(クローム8)
右。これがWebkitのバグとして提出されるべきだと思いますか? –
はい。最初に検索してみてください。以前はこれについてのバグを見たと思っていましたが、今見つけられません。 – monsur