1

データベースにはcherrypyのスタンドアロンサーバー(cherrypy.quickstart())とsqlite3を使用しています。

チェリーピーを使用しているときに、データベースへの ajax/jquery 非同期呼び出しをどのように行うのか疑問に思っていましたか?

4

2 に答える 2

9

CherryPy 3.2.0-rc1を使用している場合は、デコレータ@json_in@json_out(こちらを参照) を使用できます。

したがって:

@cherrypy.expose
@tools.json_in(on = True)
@tools.json_out(on = True)
def json_test(self):
    return { 'message':'Hello, world!' }

JSON をブラウザーに返します。

$(document).ready(function() {
    $.getJSON('/json_test', function(data) {
        alert(data.message);
    }
}

CherryPy は、JSON 投稿のコンテンツ タイプが であることを想定していることを覚えておく必要がありますapplication/json。これを jQuery で行うには、使用$.ajaxして手動で設定contentTypeするか、次の便利な関数を使用できます。

$.postJSON = function(url, data, callback) {
    $.ajaxSetup({ scriptCharset:"utf-8", 
                    contentType:"application/json; charset=utf-8" });
    $.post(url, $.toJSON(data), callback, "json");
}

この関数はjquery-jsonプラグインを使用しますが、別の方法を使用して JSON に変換することもできます。

于 2010-01-11T08:42:11.687 に答える
2

他の Web サーバーを使用するのと同じ方法で、サーバー側アプリケーションによって処理される URL を呼び出すように JavaScript を取得します。

于 2010-01-06T18:47:52.877 に答える