2016-11-07 123 views
0

只是想使用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

如果我的回答幫助,請考慮向上投票或標記我的答案的答案。 –

回答

0

我相信,如果它是一個錯字或沒有,但你type: 'POST'後忘了一個逗號。

在一個側面說明要發送的敏感數據如明文用戶密碼。我會建議先加密它。最常用的技術之一是bcrypt

+0

感謝您的建議,將加密,但問題仍然沒有得到解決.... –

+1

哪裏是存儲您想發佈數據的變量?我不明白,在你的代碼在AJAX調用@LokeshTiwari –

+0

@MisterPositive更新數據變量及其運作良好後,感謝名單了很多 –

1

您的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)錯誤... –