错误405:不允许的方法烧瓶,阿贾克斯

问题描述:

只是想使用Ajax & Python-瓶表单数据提交到MySQL数据库,但同样的错误“的方法不允许”一次又一次出现..亲切看看代码并帮助我......错误405:不允许的方法烧瓶,阿贾克斯

<div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal">&times;</button> 
      <h4 class="modal-title" Align="center">Create Account</h4> 
     </div> 
     <form role="form" method="POST"> 
     <div class="modal-body"> 
      <p id="msg"></p> 
      <input class="form-control" name="email" type="text" Placeholder="Email"></input><br /> 
      <input class="form-control" name="firstname" type="text" Placeholder="First Name"></input><br /> 
      <input class="form-control" name="lastname" type="text" Placeholder="Last Name"></input><br /> 
      <input class="form-control" name="password" type="password" Placeholder="Password"></input><br /> 
      <input class="form-control" type="password" Placeholder="Confirm Password"></input> 
     </div> 
     <div class="modal-footer"> 
      <button id="btncheck" class="btn btn-danger" type="submit" >Signup</button> 
     </div> 
     </form> 
     </div> 

    </div> 
    </div> 
</div> 

<script>  

$(function(){ 

    $("#btncheck").submit(function(){ 
    $.ajax({ 
    url: '/signup', 
    type: 'POST' 
    success: function(res){ 
      console.log(res); 

     } 

    }); 
    }); 

Python代码

@app.route("/signup", methods=['POST','GET']) 
def signup(): 
    try: 
     if request.method == 'POST': 
      _email =request.form["email"] 
      _firstname = request.form["firstname"] 
      _lastname = request.form["lastname"] 
      _password = request.form["password"] 
      con = mysql.connect() 
      cursor = con.cursor() 
      if _email and _firstname and _password: 
       cursor.execute("""INSERT INTO signpp (
              user_email, 
              user_fname, 
              user_lname, 
              user_password) 
            VALUES (%s,%s,%s,%s)""",(_email,_firstname,_lastname,_password)) 

       data = cursor.fetchall() 
       if len(data) is 0: 
        con.commit() 
        return jsonify(data = "User created successfully !") 
       else: 
        return jsonify(str(data[0])) 


    except Exception as e: 
     return render_template('error.html', error = str(e))   

    cursor.close() 
    con.close() 

错误:不允许的方法

的方法是不允许的请求的URL。

+0

如果我的回答帮助,请考虑向上投票或标记我的答案的答案。 –

我相信,如果它是一个错字或没有,但你type: 'POST'后忘了一个逗号。

在一个侧面说明要发送的敏感数据如明文用户密码。我会建议先加密它。最常用的技术之一是bcrypt

+0

感谢您的建议,将加密,但问题仍然没有得到解决.... –

+1

哪里是存储您想发布数据的变量?我不明白,在你的代码在AJAX调用@LokeshTiwari –

+0

@MisterPositive更新数据变量及其运作良好后,感谢名单了很多 –

您的Web服务是否响应您的ajax调用期望获得任何数据,我假设您做了POST?如果是这样,我不知道你在哪里传递,并可能抛出这个错误(不匹配的签名)。数据:yourDataHere

举个例子:

var params = { StateId: stateid }; 

$.ajax({ 
    dataType: 'json', 
    type: 'post', 
    url: 'YOURURLHERE', 
    data: params, 
    error: function (request, status, error) { 
     alert('Error: ' + error); 
    }, 
    success: function (result) { 
     $('#body').html(result); 

         } 
}); 
+0

仍然没有工作... –

+0

你有切片在Ajax调用定义的错误?当你进行调试时你是否击中了成功部分? –

+0

加载资源失败:服务器在控制台中响应状态405(METHOD NOT ALLOWED)错误... –