【问题标题】:Flask not interacting with AjaxFlask 不与 Ajax 交互
【发布时间】:2016-10-26 18:45:18
【问题描述】:

这个脚本

<script type="text/javascript">
$(function() {
$('.send').live('click', 'button', function()
{
var user1 = $(this).val();
var user2=$(this).prev().val();
var text=$(this).prev().prev().val();
var my_data = {
    user1: user1, text:text, user2:user2,
};
console.log(my_data)
$.ajax({
    url: "/updatechat",
    data: my_data,
    type: 'POST',
    success: function(response) {
        console.log(response)
     },
    error: function(error) {
        console.log(error);
    }
});
});

});

正在与对应的路由 /updatechat 引发错误

@app.route('/updatechat', methods=['GET','POST']) 
def updatechat():
user1 =  request.form['user1']
user2 =  request.form['user2']
text =  request.form['text']
return [user1,user2,text] #not the actual code

但如果在上一段代码中我替换为这个,则不会引发相同的错误

user1='bbb'
user2='whatever'
text='idk'

这个“var = request.form['var']”表单适用于我的代码中的几个不同路径

【问题讨论】:

  • .live 在很久以前就被弃用了。使用.on
  • 错误是什么?请编辑您的问题以包含完整的错误和回溯。
  • 我必须使用 .live,因为按钮是在此过程中动态生成的。我在编写此项目的过程中发现,如果我继续使用,按钮将不起作用。出于某种原因@hjpotter92 除了。由于该函数适用于 user1='bbb',user2='whatever' 等,因此问题不应该在 .live 上
  • @dim POST 192.168.1.52:5000/updatechat 400 (BAD REQUEST) XMLHttpRequest {readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, responseURL: "192.168.1.52:5000/updatechat..."}跨度>
  • 你没有使用表单,而不是 request.form['user1'] 你需要 request.args.get('user1')

标签: python ajax flask


【解决方案1】:

已解决 正确的形式是 user1 = request.values.get("user1")

来源:https://stackoverflow.com/a/20341272

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 2012-10-22
    相关资源
    最近更新 更多