jquery - 如何将 javascript 数组发送到 cherrypy

标签 jquery python cherrypy

我有一个类似 jQuery 的帖子

var arr = ['some', 'string', 'array'];

jQuery.post('saveTheValues', { 'values': arr },
            function(data)
            {
                //do stuff with the returned data
            }, 'json'
           );

然后它进入一个 cheerypy 函数:

@cherrypy.expose
def saveTheValues(self, values=None):
    #code to save the values

但是运行 javascript 返回 400 Bad Request 因为 Unexpected body parameters: values[]

如何将数组发送到 cherrypy?

最佳答案

问题是较新的 jQuery 版本将大括号作为 CherryPy 不喜欢的名称的一部分发送。一种解决方案是在 CherryPy 端捕获它:

@cherrypy.expose
def saveTheValues(self, **kw):
    values = kw.pop('values[]', [])
    #code to save the values

另一种解决方案是让 jQuery 使用传统的发送参数的方法,方法是将传统标志设置为 true 来序列化参数。以下内容适用于未更改的 CherryPy 代码:

var arr = ['some', 'string', 'array'];

jQuery.post('saveTheValues', $.param({'values': arr}, true),
    function(data)
    {
        //do stuff with the returned data
    }, 'json');

关于jquery - 如何将 javascript 数组发送到 cherrypy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8065913/

相关文章:

jquery - 如何在 ASPTokenInput 上预填充一些标签

jquery - HTML4+5 jquery ajax 历史不改变 URL,hashbang?

python - 使用 Fabric 在受限 shell 中执行命令

python - 可以与包装函数的参数交互的装饰器

python - 在 mod_wsgi 下运行 CherryPy

python - Cherrypy:多处理

caching - SQLAlchemy 是否支持缓存?

php - 推特线程对话

javascript - 与 AJAX 服务器对话时显示弹出 div

python - 这个数组赋值是怎么回事?