如何在javascript中传递URL内的参数? 我有这样的案例:
$('.btn-delete').click(function () {
var user_id = $(this).attr('userid');
console.log(user_id);
$('#modal-form').attr('action', "{{ url_for('admin.delete_user' , id="' + user_id +'" ) }}");
});
user_id
变量的值为56f52ea551d72027711157d6
如果我这样做,我会得到Method Not Allowed because
网址如下:
/admin/users/delete/%27%20+%20user_id%20+%27
我应该如何在这部分传递参数?
$('#modal-form').attr('action', "{{ url_for('admin.delete_user' , id="' + user_id +'" ) }}");
请有人帮帮我吗?
编辑: 我在python中路由admin.delete_user时使用的方法是:
mod_admin.add_url_rule( '/users/delete/<string:id>', methods=['GET'])
def delete_user(self, id):
mongo.db.users.remove({'_id': ObjectId(id)})
return redirect(url_for('admin.users'))
模态弹出窗口:
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title"><span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span></h4>
</div>
<form id="modal-form" action=" " method="POST">
<div class="modal-body">
<p>Are you sure?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default btn-sm btn-style" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-default btn-sm btn-filter-apply btn-style" >Yes</button>
</div>
</form>
</div>
</div>
答案 0 :(得分:1)
因为模板{{ }}
由jinja评估并在浏览器看到它之前转换为字符串,所以您不需要像所示的那样连接所有字符串。 id
参数应作为标准关键字参数传递。
$('#modal-form').attr('action', "{{ url_for('admin.delete_user' , id=user_id|string) }}");
您还需要通过更新此
来允许POST
次请求到指定的网址
mod_admin.add_url_rule( '/users/delete/<string:id>', methods=['GET', 'POST'])
<强>更新强>
由于user_id
实际上是在 javascript 中定义的,因此这是一个问题,因为jinja无法访问user_id
。要解决此问题,您需要以这种方式创建URL:
$('#modal-form').attr('action', "{{ url_for('admin.delete_user') }}" + user_id);