Передача db url в качестве параметра ajax - PullRequest
0 голосов
/ 27 января 2012

У меня есть контроллер, написанный на python cherrypy, который должен проверять правильность URL-адреса БД, пытаясь установить соединение.Однако у меня проблемы с передачей параметра в метод.Мой вызов ajax:

    $.ajax({ async : false,
        type: 'POST',
        url: "/settings/check_db_url/"+db_url ,
        success: function(r) { alert(r) },
        error: function(r) { alert('failure') }
    });

Теперь проблема, URL-адреса, которые мне нужно проверить, имеют вид:

'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.Но это кажется мне таким хакерским, и что касается постресса, думаю, мне придется заменить еще.Так каков правильный способ справиться с этим?

1 Ответ

2 голосов
/ 27 января 2012

Отправьте его как часть параметра POST, а не как часть URL-адреса, используя параметр data:

$.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.

...