使用e.PreventDefault停止将返回的响应加载到浏览器中

时间:2019-06-18 16:26:28

标签: javascript jquery

我通过表单将文件上传到Web服务器,但是完成后即使在检查开发人员状态工具(在Chrome / Firefox中)时,也不会显示响应。

最初,我只是使用表格和帖子,但是由于文件很大,我切换到尝试提供JS解决方案,并且我想显示上传进度和预计完成时间

$form.on('submit', function(e) {
    e.preventDefault(); 

    if (isAdvancedUpload) {
        let formData = new FormData(document.forms.upload);
        var xhr = new XMLHttpRequest();
        xhr.withCredentials = true;
        xhr.upload.addEventListener('progress', updateProgress);
        xhr.open('POST', '/load', true);
        xhr.send(formData);
    } 

在所有浏览器中,该文件都会上载,但不会显示响应(即使在开发人员/网络/响应中返回了完整的HTML)

如果我,请使用e.preventDefault();它可以按预期运行,但仅在Chrome(不适用于Safari和Firefox)中

这是最后的控制台堆栈跟踪(我的脚本以302重定向和原始脚本的GET请求结尾-必需的行为)

XHR GET https://************.com/load  [HTTP/2.0 200 OK 42ms]

<anonymous> https://***************.com/js/uploader.js:86:8 
dispatch https://code.jquery.com/jquery-3.4.1.min.js:2:42571
add/v.handle https://code.jquery.com/jquery-3.4.1.min.js:2:40572

请问有指针吗?

0 个答案:

没有答案