request - 如何从 Pyramid 中的 post 请求中检索 json 数据?

标签 request pyramid

Pyramid :

class ProjectorViews(Layouts):

def __init__(self, request):
    self.request = request

@view_config(renderer="json", name="updates.json", request_method="POST")
def updates_view(self):
    print self.request.params

JS :
$(function() {

    function get_updates () {
        data = JSON.stringify({'a':1});
        $.post('/updates.json', data, function(res) {
            });
        }, 'json').done(function() {

        });
    }

    get_updates();
});

控制台显示 self.request.params返回 NestedMultiDict([('{"a":1}', u'')])
如何获取 中的键和值NestedMultiDict 目的?

如果我这样做 self.request.params.getall("a") ,它报告
KeyError: "Key not found: 'a'"

如果我这样做 self.request.json_body ,它报告
ValueError: No JSON object could be decoded

最佳答案

$.post()总是用 application/x-www-form-urlencoded 发送数据内容类型。使用 $.ajax()以正确的内容类型发送数据:

$.ajax({
  url: url,
  type: "POST",
  data: data,
  contentType: "application/json; charset=utf-8",
  dataType: "json"
}).done(...);

在 Pyramid 一侧 request.json_body是正确的访问方式……好吧,请求的 JSON 正文。

关于request - 如何从 Pyramid 中的 post 请求中检索 json 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24377380/

相关文章:

java - 为 URLStreamHandlerFactory 创建 HttpURLConnection,出现错误 : protocol doesn't support input

ruby-on-rails - Rails 没有路由匹配 PUT,但 rake 路由显示它存在

python - pip - 安装子依赖项会覆盖 requirements.txt 上的其他包

python - 如何使用 Pyramid 访问 Plone 生成并保存在 ZODB 上的数据?

Python请求SSL错误不一致

Android启动画面与服务器通信

java - response.sendRedirect() 和 request.getRequestDispatcher().forward(request,response) 有什么区别

python - 如何更改 Pyramid 中内部服务器错误的默认 View ?

python - 模板更改时如何重新加载 pserve?

python - Pyramid 和遍历问题