を受ける:ここフラスコは私がの形で、サーバへのクライアントポストデータでフラスコWebアプリケーションに取り組んでいますポストJSON
{
"sess_id" : 1 ,
"annotations" :
[ {"tag_start" : "TIME","tag_end" : "TIME","tag" : "YOUR_TAG"}, {"tag_start" : "TIME","tag_end" : "TIME","tag" : "YOUR_TAG"}, {"tag_start" : "TIME","tag_end" : "TIME","tag" : "YOUR_TAG"}]
}
はフルAjaxのポストです...
$.ajax({
url: 'http://127.0.0.1:5000/api/saveannotation',
type: 'POST',
headers: {'Content-Type' : 'application/json'},
data: {'sess_id' : $('#sessionid_area').val(),
'annotations': JSON.parse(annotations)},
success: function(data) { alert(data.status); }
});
ので、私もそのように定義され、API側でこれを見ることができます:
@sessionapis.route('/saveannotation', methods=['GET', 'POST'])
@login_required
def save_annotation():
rData = request.data
if request.method == 'GET':
return jsonify({'status' : 'success GET'})
else:
return jsonify({'status' : 'success'})
問題は、データが「バイト」タイプではなく、広告であるということですict。私もrequest.jsonまたはrequest.get_json(silent = True)を呼び出すことはできません、それは "400悪い要求"を返します。ここで
はrequest.dataであるもののサンプルです:
b'sess_id=1&annotations%5B0%5D%5Btag_start%5D=2...
何らかの理由でURLエンコードのように見えます。値も空です。私が野生の何かをすることを選択した場合、content-type = jsonを除外します。私はdictのようなものを得ることができますが、私はそれを非常に奇妙にアクセスする必要があります。私は個々のオブジェクトを取得するのではなく、むしろすべてのプロパティにフラットアクセスする。
jsonを妥当なオブジェクトに解析する方法についてのご意見はありますか?
ありがとうございました!