私はそこでOPと同じ目標を達成しようとしています: クロム拡張でhtml5ブロブを使用してmp3ファイルをダウンロードします が、彼のコードではなく、議論で提供された解決策は私のgoogle-chrome 19.0.1084.46では機能しません。ローカル (file://) ページの chrome-console で作業していますが、このコードのエラーは次のとおりです。
finalUrl = "http://cs1076.userapi.com/u3040678/audio/d7ff6874cfa4.mp3";
var xhr = new XMLHttpRequest();
xhr.open("GET", finalURL, true);
xhr.setRequestHeader('Content-Type', 'octet-stream');
xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
var bb = new (window.BlobBuilder || window.WebKitBlobBuilder)();
bb.append(xhr.responseText);
var blob = bb.getBlob("application/octet-stream");
var saveas = document.createElement("iframe");
saveas.style.display = "none";
saveas.src = window.webkitURL.createObjectURL(blob);
document.body.appendChild(saveas);
delete xhr;
delete blob;
delete bb;
}
}
xhr.send();
のように見える
オプションhttp://cs1076.userapi.com/u3040678/audio/d7ff6874cfa4.mp3 405 (許可されていません) cs1076.userapi.com/u3040678/audio/d7ff6874cfa4.mp3:1 XMLHttpRequest はhttp://cs1076.userapi.comを読み込めません/u3040678/audio/d7ff6874cfa4.mp3 . Origin null は、Access-Control-Allow-Origin では許可されていません。
そして 2 番目のサブ質問: How can i generate a file and offer it for download in plain javascript?に従って - ダウンロードするファイルを提供するには、iframe を作成するのが最善の方法ですか?