Estoy tratando de enviar un archivo usando ajax jquery desde el front-end.
HTML
<label>Upload File </label> <form method='post' enctype="multipart/form-data"> <input type='file' id='uploaded_file'> <button id="submit-file">Submit</submit> </form>JavaScript
<script> $(document).ready(function(){ $("#submit-file").click(function(event){ var form_data = new FormData(); form_data.append("uploaded_File_Name","MyFile"); form_data.append("file",$("#uploaded_file").prop('files')[0]); $.ajax({ url:"/read_uploaded_file", type:"POST", contentType: false, cache: false, processData: false, data: form_data, success: function(data){ console.log("Successful data upload"); }, error: function(data){ console.log("Error !!"); } }); }); }); </script>En el back-end, estoy usando un matraz para leer el archivo.
@app.route('/read_uploaded_file',method=["GET","POST"]) def read_uploaded_file(): uploaded_file = request.files['file']Recibo un mensaje de error POST (URL) 405 (MÉTODO NO PERMITIDO) , ¿Estoy haciendo algo mal aquí? ¿Cómo lo arreglo?
El error POST (URL) 405 (MÉTODO NO PERMITIDO) se debe al intercambio de recursos de origen cruzado (CORS).
Para resolver este CORS agregado en el respaldo:
from flask_cors import CORS app= Flask(__name__) CORS(app)