使用https时不会触发xhr onloadend

时间:2017-12-21 13:14:53

标签: jquery ajax

我有以下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。

这是为什么?任何人都可以重现这个吗?

0 个答案:

没有答案