我有一个搜索按钮,点击后,应该将数据发送到我的服务器。 javascript看起来像这样:
$('#search-btn').click(function() {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/my_route",
data: JSON.stringify({title: 'hallo', article: 'test'}),
dataType: 'json',
success: function (data) {
console.log(data.title);
console.log(data.article);
},
});
});
在服务器上,我的路由如下所示:
@app.route('/my_route')
def route(methods=['GET', 'POST']):
print(request.method)
return flask.jsonify({"foo": "bar"})
通过此设置,我从jQuery收到控制台错误:POST http://localhost:5000/ 405 (METHOD NOT ALLOWED)
我不明白为什么这段代码会将405个广告发布数据丢给错误的资源? ajax和路由都指向/my_route
。谁能发现我的问题?感谢。
答案 0 :(得分:3)
非常确定你需要将methods=['GET', 'POST']
放在app.route
装饰器中,如下所示:
@app.route('/my_route', methods=['GET', 'POST'])
def route():
print(request.method)
return flask.jsonify({"foo": "bar"})