Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Kullanımdan kaldırılan, destek dışı Internet Explorer 11 masaüstü uygulaması, Windows 10'un belirli sürümlerinde Microsoft Edge güncelleştirmesi aracılığıyla kalıcı olarak devre dışı bırakılmıştır. Daha fazla bilgi için bkz. Internet Explorer 11 masaüstü uygulamasının kullanımdan kaldırılması hakkında SSS.
Bu makalede, Windows 10, sürüm 1809'da Microsoft Edge ile FormData
tarafından boş bir dosya öğesi içeren XMLHttpRequest
'nün doğru şekilde gönderilememesi sorununu çözmek için bir geçici çözüm sunulmaktadır.
Orijinal ürün sürümü: Microsoft Edge, Windows 10
Özgün KB numarası: 4490157
Belirtiler
XMLHttpRequest
(jQuery.ajax()
) yöntemi gönderildiğinde, Windows 10, sürüm 1809 için Microsoft Edge'de boş bir dosya öğesi içeren bir nesneyi doğru şekilde gönderemezFormData
.
Örneğin, aşağıdaki kod örneğinde olduğu gibi yalnızca bir dosya öğesi ve diğer tüm dosya öğelerini boş içeren bir dosya ayarlarsınız:
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-1.12.4.js"
integrity="sha256-Qw82+bXyGq6MydymqBxNPYTaUXXq7c8v3CwiYwLLNXU="
crossorigin="anonymous"></script>
</head>
<body>
<form action="/AjaxUploadSample/Home/FileUpload" enctype="multipart/form-data" method="post">
<input name="files" id="files" type="file" value=""><br>
<input name="files" id="files" type="file" value=""><br>
<input name="files" id="files" type="file" value=""><br>
<button id="btn" type="button">Async Upload</button>
</form>
<hr>
<p id="message" style="white-space:pre;"></p>
<script>
$(document).ready(function () {
$("#btn").on("click", function () {
var _form = $(this).closest("form")[0];
$.ajax({
type: "post",
url: _form.action,
processData: false,
contentType: false,
data: new FormData(_form),
success: function (data, textStatus, jqXHR) {
$("#message").text(data.Message);
}
});
});
});
</script>
</body>
</html>
Async Upload'a tıkladığınızda, set dosyası doğru bir şekilde tanınmıyor.
Neden
Bu sorun, Windows 10, sürüm 1809 için Microsoft Edge'de FormData
uygulaması değiştirildiğinde meydana gelir.
Geçici çözüm
Bu sorunu geçici olarak çözmek için $.ajax()
çağrılmadan önce aşağıdaki kodu ekleyin ve boş girişleri açıkça atlayın.
// Workaround
var _data = new FormData(_form);
if (_data.entries)
{
var data = new FormData();
for (var p of _data)
{
if (p[1])
{
// p[1] is the value of form entry
data.append(p[0], p[1]);
}
} _data = data;
}
$.ajax(
{
type: 'post',
url: _form.action,
processData: false,
contentType: false,
data: _data,
success: function (data, textStatus, jqXHR)
{
$('#message').text(data.Message);
}
});