とりあえず自己解決したので閉じます。
JSでの送信側
javascript
1var reader = new FileReader();
2reader.readAsDataURL(file.file);
3
4reader.onload = function(evt) {
5 // get Data Url
6 var data_url = reader.result;
7 // cut base64. make send data
8 var split_data_url = data_url.split(',');
9 var send_data = split_data_url.pop()
10
11 $.ajax({
12 url : "http://host_name:port",
13 type : "POST",
14 crossDomain: true,
15 data : send_data,
16 cache : false,
17 contentType : false,
18 processData : false,
19 }).done(function(result){
20 console.log(result);
21 }).fail(function(result){
22 console.log('failed to load the info');
23 console.log(result);
24 });
25 }
26}
Python(Flask)での受信側
python
1import json
2
3from flask import Flask, jsonify, make_response, request, Response
4from flask_cors import CORS
5import docx2txt
6import base64
7
8
9app = Flask(__name__)
10CORS(app)
11
12@app.route('/', methods=['POST'])
13def post_json():
14 # get data
15 doc_base64 = request.get_data()
16 dec_data = base64.b64decode(doc_base64)
17
18 # save file to local
19 with open("tmp.docx", "wb") as fh:
20 fh.write(dec_data)
21
22 # open file and get text
23 text = docx2txt.process('tmp.docx').replace('\n', '。')
24 print(text)
25
26 result = { "data": text }
27 return jsonify(result)
28
29if __name__ == "__main__":
30 app.run(debug=False, host='foo', port=port)
base64の使い方がいまいちわからないので、ローカルに保存したファイルを一度読み込んでます。