我有一个javascript方法,它读取通过表单提交的输入文件,并尝试将其数据发布到一个烧录网址,该网址应该读取已发布的数据并返回一些修改。
HTML部分:
<form id="form_1">
<input type="file" name="file_1" id="file_1">
<input type="submit" value="submit" id="regan">
</form>
JS部分:
$("#form_1").submit(function(e){
e.preventDefault(e);
var reader = new FileReader();
var line_data = $('#file_1').get(0);
if (line_data.files.length) {
var input_file = line_data.files[0];
reader.readAsText(input_file);
$(reader).on('load', function(e){
data_line = e.target.result;
$.ajax({
url:'url/validate/',
type:'POST',
data:{akey: data_line},
success:function(returned_data){console.log(returned_data);},
error:function(){console.log('sorry...');}
});
});
}
});
Flask / Python部分:
@app.route('/validate_line/')
def validate_line_data():
try:
data = request.form['akey']
except:
data = 'bad'
data = str(data)
return data+'was_received'
到目前为止,它在javascript中成功读取了提交的文本文件,但似乎它没有通过ajax post方法发布并给出错误url / validate / 405(METHOD NOT NOTOWED)。
任何帮助都会很棒。谢谢。
答案 0 :(得分:3)
要让Flask接受POST请求,您需要在装饰器中指定:
@app.route('/validate_line/', methods=['POST'])
如果您希望它也接受GET请求,请转到
['GET', 'POST']