我有一个瓶子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调用或者我没有正确地读取数据服务器端。两者看起来都很简单,但我不确定我可能会缺少什么。
答案 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)