我有以下html页面(未删节):
<!DOCTYPE html>
<html>
<head></head>
<body>
<input type="file" id="f" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$('#f').change(function () {
let formData = new FormData(), file = this.files[0];
formData.append('upload', file);
$.ajax({
url: '/fi/upload',
type: 'POST',
data: formData,
processData: false,
contentType: false,
xhr: function () {
var xhr = $.ajaxSettings.xhr();
xhr.upload.onloadend = function (e) {
debugger; //doesn't get here when using https
};
return xhr;
}
});
});
</script>
</body>
</html>
使用http调用页面时,onloadend
回调会触发。使用https时,它不会。这与onprogress
的故事相同。
/fi/upload
没有做任何事情 - 这是一个空的C#MVC动作返回void
。它返回http&amp;的代码200
。 HTTPS。
这是为什么?任何人都可以重现这个吗?