我想从Vue组件向Flask后端发送POST请求。 我尝试了以下代码:
在script.js中:
finishGame: function () {
this.gameStarted = false;
this.$http.post("http://127.0.0.1:5000/", "hello")
.then(function () {
alert("POST")
});
},
在app.py中:
from flask import Flask, render_template
from flask_cors import CORS
from model.words import Words
# Set up custom delimiters to avoid Vue.js conflict.
class CustomFlask(Flask):
jinja_options = Flask.jinja_options.copy()
jinja_options.update(dict(
block_start_string='(%',
block_end_string='%)',
variable_start_string='((',
variable_end_string='))',
comment_start_string='(#',
comment_end_string='#)',
))
app = CustomFlask(__name__)
CORS(app)
word_gen = Words("model/word_lists/onegin.csv")
@app.route('/', methods=['POST'])
def save_game_results():
print("Game res!")
return render_template('index.html', words=word_gen.get_random(500), words_num=word_gen.size())
@app.route('/')
def play_hat():
return render_template('index.html', words=word_gen.get_random(500), words_num=word_gen.size())
该脚本包含更多代码,但是肯定运行finishGame
函数,并且仅忽略以this.$http
开头的部分。该代码不会产生任何错误,但是在调用save_game_results()
时永远不会调用finishGame()
。
我已经尝试过:
"http://127.0.0.1:5000/"
代替"/"
。"http://127.0.0.1:5000/"
和"http://127.0.0.1:5000/go"
替换@app.route('/', methods=['POST'])
与@app.route('/go', methods=['POST'])
它没有用。