成功后,避免使用React Ajax + FileUpload + FormData刷新页面

时间:2018-02-23 11:29:28

标签: ajax reactjs

我不知道为什么但是在使用formData + files_upload的AjaxCall之后,整个页面被重新加载。 正常的Ajax调用不会发生这种情况。

如果您使用REACT,我没有FORM标签或其他内容。

我有一个内联文件上传组件来加载异步文件。

<FlatButton label="Upload File" onClick = { (e) => this.commonUploadFile(e) } />

触发器很简单。

方法:

 e.preventDefault(); // Let's stop this event.
        e.stopPropagation(); // Really this time.

        let formData = new FormData();
        const file = files[0]; //passed by wrapping method
        formData.append('uploading_file', file);
        formData.append('file_name',this.state.file_name);
        formData.append('original_filename',this.state.original_filename);
        formData.append('userToken',window.userToken);
        formData.append('file_path',this.props.attributes.dirname);

        $.ajax({
            method: 'POST',
            data: formData,
            cache: false,
            contentType: false,
            processData: false,
            async : true,
            url: process.env.REACT_APP_FILE_UPLOAD,
            complete: function(result){
                result = JSON.parse(result.responseText);
                this.setState({upload_result : result.success});
            }.bind(this),
          });

          return false;

呼叫成功结束,组件状态正常更改但在此之后,整个网站刷新,我不知道原因。

1 个答案:

答案 0 :(得分:1)

我终于找到了问题所在。 使用开发服务器(npm start)时,任何文件系统更改都将启动页面刷新,文件上载会更改文件系统。

所以要注意。