错误405:不允许的方法烧瓶,阿贾克斯
只是想使用Ajax & Python-瓶表单数据提交到MySQL数据库,但同样的错误“的方法不允许”一次又一次出现..亲切看看代码并帮助我......错误405:不允许的方法烧瓶,阿贾克斯
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</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。
我相信,如果它是一个错字或没有,但你type: 'POST'
后忘了一个逗号。
在一个侧面说明要发送的敏感数据如明文用户密码。我会建议先加密它。最常用的技术之一是bcrypt
感谢您的建议,将加密,但问题仍然没有得到解决.... –
哪里是存储您想发布数据的变量?我不明白,在你的代码在AJAX调用@LokeshTiwari –
@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);
}
});
仍然没有工作... –
你有切片在Ajax调用定义的错误?当你进行调试时你是否击中了成功部分? –
加载资源失败:服务器在控制台中响应状态405(METHOD NOT ALLOWED)错误... –
如果我的回答帮助,请考虑向上投票或标记我的答案的答案。 –