次のコードを使用して、サーバー上で静的に提供されるファイルの名前を付けて保存ダイアログを作成しています。
open: function() {
$('.ui-widget-overlay').addClass('dialog-overlay');
},
close: function() {
$('.ui-widget-overlay').removeClass('dialog-overlay');
},
buttons: {
"Save": function() {
var iframe = document.createElement("iframe");
iframe.src = 'static/staticfile.txt';
iframe.style.display = "none";
document.body.appendChild(iframe);
return false;
},
...
...
iframe 機能は、jQuery UI メニュー ウィジェットに属する [保存] ボタンが押されたときに反応します。
この名前を付けて保存するコードは、この質問に対する受け入れられた回答に基づいています: Forcing "Save As" dialog via jQuery GET
これは、サーバーがローカルで実行されている場合に正常に機能し、ブラウザがサーバーと同じマシン上にある場合に [名前を付けて保存] ダイアログが表示されます。しかし、サーバーがリモートで実行されている場合、ボタンを押してもブラウザーにダイアログが表示されません。サーバーから報告される問題はありません。サーバーは静的ファイルの GET 要求を正常に受信しました。Chrome デバッガーを使用すると、ボタンの押下が認識され、コールバック コードがエラー (または効果) なしで実行されることが示されます。Chrome と Firefox の両方でこの動作を確認しました。
なぜこれが起こっているのか誰にも示唆できますか?