我有一个用python cherrypy编写的控制器,它应该通过注册建立连接来检查db url是否有效。我有问题,但将参数传递给方法。我的ajax电话是:
$.ajax({ async : false,
type: 'POST',
url: "/settings/check_db_url/"+db_url ,
success: function(r) { alert(r) },
error: function(r) { alert('failure') }
});
现在我需要测试的网址的问题是:
'sqlite':'sqlite:///Users/Home/tvb-database.db' or
'postgresql+psycopg2://postgres:root@127.0.0.1:5432/tvb?user=postgres&password=postgres'
对于sqlite部分,如果我执行以下操作,我设法传递它:
db_url = db_url.split('/').join('__')
db_url = db_url.split(':').join('x_xxx_x')
然后在python中替换回来。但这对我来说似乎太过苛刻了,对于违规部分,我想我将不得不更换一些。那么处理这个问题的正确方法是什么?
答案 0 :(得分:2)
使用data
选项将其作为POST参数的一部分发送,而不是作为网址的一部分发送:
$.ajax({
async : false,
type: 'POST',
url: '/settings/check_db_url',
data: { db_url: db_url },
success: function(r) { alert(r) },
error: function(r) { alert('failure') }
});
在您的服务器中阅读db_url
POST参数。