简体   繁体   中英

Receive JSON in python Bottle

I am trying to do a JSON post to my Bottle server.

from bottle import request, route, run
@route('/feedback', method='POST')
def feedback():
    data = request.json
    print data

run(host='localhost',port=8080)

In the client side, I have

$('#user_feedback').submit(function() {
  var feedback = {"id": 1}
  $.ajax({
     type: "POST",
     url: "http://localhost:8080/feedback",
     data: feedback
 });
 return false;
});

I am returning false here because I don't want the page to be redirected.

However, the data I received in my Bottle server is always None when printed out. Please help. Thank you.

request.json expects the content type of the request to be application/json . So to make it work, you should set the contentType property of your request to application/json and stringify your data :

$.ajax({ 
    type:"POST",
    contentType: "application/json",
    url:"/feedback",
    data: JSON.stringify(feedback)
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM