1

我有一个瓶子网络服务器,并且正在使用 jQuery 使用 json 执行我的 ajax 请求,但是一个没有发送或另一个没有接收,我不确定是哪个。我的代码基本上是这样的:

服务器.py

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

总是打印无,请求当然正在通过,但它似乎没有收到任何数据。

javascript

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

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

4

3 回答 3

6

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

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

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

于 2015-08-11T20:48:23.523 回答
1

request.json仅当请求的 Content-type 为 时,Bottle才有效application/json。(您的 jQuery POST 可能正在使用 Content-type application/x-www-form-urlencoded。)

在这种情况下,jQuery.ajax()可能比.post().

于 2013-11-07T01:25:12.947 回答
0

您应该将其发布为 json:

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

于 2013-11-17T14:56:49.933 回答