为什么瓶子中的request.json返回无?

时间:2013-11-06 21:14:31

标签: jquery python ajax json bottle

我有一个瓶子web服务器,我正在使用jQuery使用json执行我的ajax请求,但是其中一个没有发送或另一个没有接收,我不知道哪个。我的代码基本上是这样的:

server.py

@route("/jsontest", method="POST")
def jsontest():
  print(request.json)

始终打印无,请求正在经历,但似乎没有接收到任何数据。

的javascript

$.post("/jsontest", {username: $loginName}, login_success)

按下按钮时触发javascript,并从输入框中获取loginName。在js中我已经完成了一个console.log($ loginName)以确保它实际上正确地选择了它,所以我假设问题出在那个jQuery调用或者我没有正确地读取数据服务器端。两者看起来都很简单,但我不确定我可能会缺少什么。

3 个答案:

答案 0 :(得分:6)

您可以使用$ curl测试您的瓶子方法:

curl -i -H "Content-Type: application/json" -X POST -d '{"UserName":"name","Password":"password"}' http://hostname/jsontest

现在您可以通过以下方式打印请求数据:
    print request.json

答案 1 :(得分:0)

只有在请求的内容类型为request.json时,{s} application/json才有效。 (您的jQuery POST可能使用内容类型application/x-www-form-urlencoded。)

在这种情况下,jQuery的.ajax()可能比.post()更合适。

答案 2 :(得分:0)

你应该把它作为json发布:

$.post("/jsontest", JSON.stringify({username: $loginName}), login_success)