我不知道为什么但是在使用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;
呼叫成功结束,组件状态正常更改但在此之后,整个网站刷新,我不知道原因。
答案 0 :(得分:1)
我终于找到了问题所在。 使用开发服务器(npm start)时,任何文件系统更改都将启动页面刷新,文件上载会更改文件系统。
所以要注意。