2012-01-27 11 views
0

私はpython cherrypyで書かれたコントローラを持っています.db urlがatteptingによって接続するのが有効であるかどうかを確認する必要があります。私はしかし、パラメータをメソッドに渡すことに問題があります。私のAJAX呼び出しがある:私は私のような何かを行う場合は、それを渡すために管理sqliteの部分についてはajaxパラメータとしてdb urlを渡します

'sqlite':'sqlite:///Users/Home/tvb-database.db' or 
'postgresql+psycopg2://postgres:[email protected]:5432/tvb?user=postgres&password=postgres' 

:私はテストする必要があるURLはの形をしている

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

今問題:

db_url = db_url.split('/').join('__') 
db_url = db_url.split(':').join('x_xxx_x') 

次に、Pythonで元に戻します。しかし、これは私にとって非常にハッキーなように思えます。そして、後進の部分については、私はもう少し交換する必要があると思います。では、これを処理する正しい方法は何ですか?

+1

'encodeURIComponent()'はジョブを実行しませんか? –

答えて

2

POSTパラメータの一部としてではなくdataオプションを使用してURLの一部としてそれを送る:

$.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パラメータをお読みください。

+0

良い点は、それがPOSTだったことを認識していませんでした;-) –

+0

ありがとう、ちょうど私が行方不明だった。 – Bogdan

関連する問題