2010-01-06 48 views

回答

2

與使用任何其他網絡服務器的方式相同 - 通過讓JavaScript調用服務器端應用程序處理的URL。

+1

是。只要它是HTTP,CherryPy不在乎你怎麼稱呼它。從服務器端來看,AJAX看起來就像其他任何請求一樣。您可能必須將cherrypy.response.headers ['Content-Type']設置爲'application/json'或任何您正在返回的內容... – fumanchu 2010-01-06 19:30:43

9

如果您使用的是CherryPy 3.2.0-rc1,那麼您可以使用修飾器@json_in@json_outsee here)。

因此:

@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和manaully設置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。

+0

進口產品如何? '從櫻桃進口工具'? – franzlorenzon 2013-07-12 12:18:13