我正在开发一个Python应用程序并使用flask,这是我的DELETE函数:
@app.route('/DeleteMessage', methods=['DELETE'])
def DeleteMessage():
messages = Message.query.all()
application_id = request.args.get('application_id')
if application_id:
messages.filter_by(user_id=application_id)
session_id = request.args.get('session_id')
if session_id:
messages.filter_by(session_id=session_id)
message_id = request.args.get('message_id')
if message_id:
messages = message.filter_by(message_id=message_id)
db.session.delete(messages)
db.session.commit()
return 'ok'当我尝试运行它时,它向我发送了这样一条错误消息:
Method Not Allowed
The method is not allowed for the requested URL.发布于 2020-04-30 02:37:38
浏览器仅支持AJAX请求的PUT和DELETE,但不支持HTML表单提交。HTML form标签将只允许GET和POST方法。
在您的示例中,您可以像这样发送ajax请求,
$.ajax({
url: '{{url_for("DeleteMessage")}}',
type: 'DELETE',
success: function(result) {
// write something if needed
}
});发布于 2020-04-30 02:48:07
您发出GET请求,但flask后端在该端点/DeleteMessage上等待DELETE请求。您可以通过更改请求方法来获取@app.route('/DeleteMessage', methods=['GET']),它将正常工作,但这与http标准相反。
您可以在以下问题中了解如何发送DELETE请求:How to send DELETE request?
其他信息:
https://www.rfc-editor.org/rfc/rfc2616#section-9.3 https://www.restapitutorial.com/lessons/httpmethods.html
https://stackoverflow.com/questions/61506681
复制相似问题