macOS High Sierra および Mojave での Safari 11 の更新以降、input[type=file] フィールドでファイルが選択されている場合 (フォームで必須)、Web アプリケーションでの送信が失敗します。
submitボタンを押してしばらく待つと、safari-resource:/ErrorPage.htmlが表示されます。
私は HTTPS で、同じドメイン (およびサーバー) 上の場所に HTTPS 経由で送信しています。私たちのテスト環境では、(HTTPS ではなく) HTTP 経由で接続していますが、この場合は完全に機能します。
11 アップデートの前は、ファイルが選択されたときに送信は問題ありませんでした。Safari 12でも同様の問題が発生することを確認しております。最新版のChrome、IEでは問題ありません(アップロード可能)。
私のコードの関連部分:
html:
<form id="upload" name="upload" method="POST" enctype="multipart/form-data" th:action="@{/hoge/fuga}">
<input type="file" id="uplfile" name="uploadFile" accept=".pdf" />
<button id="upl_btn" type="button">upload</button>
</form>
JS:
$("#upl_btn").on('click', function() {
if (!IsSuccessPreCheck()) { // Checking file format etc...
return false;
}
document.upload.submit(); // In the Web Inspector, I can confirm that I can go this far.
});
私は何か間違ったことをしていますか、Safari に問題がありますか?
よろしくお願いいたします。