AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过AJAX,可以在后台与服务器交换数据并更新网页的部分内容。尽管名字中含有XML,但实际上可以使用多种数据格式,包括JSON。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>File Upload</title>
</head>
<body>
<form id="uploadForm" enctype="multipart/form-data">
<input type="file" name="file" id="fileInput">
<button type="submit">Upload</button>
</form>
<script>
document.getElementById('uploadForm').addEventListener('submit', function(event) {
event.preventDefault();
var formData = new FormData(this);
fetch('/upload', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => {
console.log('Success:', data);
})
.catch((error) => {
console.error('Error:', error);
});
});
</script>
</body>
</html>
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload_file():
if 'file' not in request.files:
return jsonify({'error': 'No file part'}), 400
file = request.files['file']
if file.filename == '':
return jsonify({'error': 'No selected file'}), 400
if file:
# 处理文件上传逻辑
return jsonify({'message': 'File successfully uploaded'}), 200
if __name__ == '__main__':
app.run(debug=True)
enctype
属性未设置为multipart/form-data
,或者后端未正确处理文件。enctype
属性设置为multipart/form-data
,并在后端使用适当的库(如Flask的request.files
)来处理文件。from flask_cors import CORS
app = Flask(__name__)
CORS(app)
通过以上步骤,你可以实现一个基本的文件上传功能,并解决一些常见问题。
领取专属 10元无门槛券
手把手带您无忧上云