ユーザーテキストをスクリプトを実行して結果を返すために、Webページからフラスコアプリケーションにユーザーテキストを送信しようとしています。私が抱えている問題は、テキストがサーバー(flask_app.py)側に表示されていないことです。ここでは、テキスト(index.js)を送ることになっているの.jsです:JSON経由でPOSTすることができません
$(document).ready(function(){
console.log('I have loaded');
//Grab DOM elements to use later
analyzeTextButton = $("#analyze-button");
analyzeTextButton.click(function() {
// get text
text = $("#user-text").val();
//console.log(text); //This part works
$.ajax({
type: "POST",
url: "analyze",
dataType: "json",
data: {
text
},
success: function(results, results2, verbs) {
text = results.text;
console.log("Success!");
console.log(verbs);
}
})
})
ここでそれを受け取るしようとしているフラスコのアプリがあります。私はいくつかの異なるバージョン(他のスタックオーバーフローの質問やさまざまなチュートリアルから)を試しましたが、どれも動作しません。それらはcontent1-5とラベル付けされています。
flask_app.py:ここ
@app.route('/analyze', methods=['POST'])
def analyze():
print('You made it to analyze', file=sys.stderr) #This gets printed
content = request.get_json(silent=True)
content2 = request.json
content3 = request.get_json()
content4 = request.form.get('html', '')
content5 = request.form['contents']
print(content, file=sys.stderr) #These all return "None"
print(content2, file=sys.stderr) #Trying to make them return user text
print(content3, file=sys.stderr)
print(content4, file=sys.stderr)
print(content5, file=sys.stderr)
text = "The text is not being found"
results = my_script(content) #Run a script on whichever works
return jsonify({'results': results})
情報(index.htmlを)を送信しようとしているページです。
<div class="row">
<form role="form" method='POST' action='#'>
<textarea class="form-control" id="user-text" name="contents" placeholder="Enter a comment"></textarea>
<button type="button" id="analyze-button" class="btn btn-default">Not Working Button</button>
<button type="submit" id="analyze-button2" class="btn btn-default">Working Button</button>
</form>
編集:私は見て私のブラウザでは、POSTは正しい文字列を送信しているようです。「here + is + my + text」
と私はまだ同じ結果を得ています。 – jss367
あなたが得ているエラーは何ですか?フラスコのアプリは 'value'キーでJSONデータリクエストを受け付けることができますか? –
POSTリクエストが実際に送信しているものをブラウザでチェックインします。 – Shilly