jquery - 如何使用 cherrypy 进行异步 ajax 调用?

标签 jquery python ajax asynchronous cherrypy

我正在使用 cherrypy 的独立服务器 (cherrypy.quickstart()) 和 sqlite3 作为数据库。

我想知道如何在使用 cherrypy 时对数据库进行 ajax/jquery 异步调用?

最佳答案

如果您使用的是 CherryPy 3.2.0-rc1然后你可以使用装饰器 @json_in@json_out ( see 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 并手动设置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。

关于jquery - 如何使用 cherrypy 进行异步 ajax 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2015065/

相关文章:

jquery - 当在 DIV 中使用鼠标滚轮时,纳米滚动条不起作用

python - 如何向正在运行的线程添加事件?

python - opencv 为什么要创建 2 个窗口?

jquery - 在 Rails 3 中处理 JS/ERB 模板中的 JSON

javascript - 将 HTTP header 添加到 Wicket Ajax 请求

javascript - 无法让 jQuery Cycle 在 Amazon Webstore 中运行

javascript - 点击 jQuery UI 对话框多次触发

javascript - jQuery 不删除附加项的下划线

python - 通过 id 获取结果失败

javascript - 使用同步请求发送用户代理和发布数据?