As a quick suggestion, use Chrome/Firefox to inspect the outgoing request data from your jQuery AJAX call. In Firefox you will need to turn on “Log request/response bodies”. I think you’ll find that you’re not actually sending the right thing.
Also, try using the pyramid_debugtoolbar to inspect what is coming in. —Paul > On Dec 10, 2014, at 7:27 AM, Rosciuc Bogdan <[email protected]> wrote: > > Hello all, > > I'm trying to build a page where when the user presses a button a variable > which initially is 0 increments with 1. This number is then sent > asynchronously to the server by using Jquery AJAX. > > What I have so far is: > > In my __init__.py file: > > > def main(global_config, **settings): > > engine = engine_from_config(settings, 'sqlalchemy.') > > DBSession.configure(bind = engine) > > Base.metadata.bind = engine > > config = Configurator(settings = settings) > > config.include('pyramid_jinja2') > > config.add_static_view('static', 'static') > > config.add_static_view('scripts', 'scripts') > > #Removed the other views > > config.add_route("declare_usage", '/user/{user_id}/{address_id}/declare') > > > config.add_route("declare_usage_json",'/user/{user_id}/{address_id}/declare.json') > > config.scan() > > > My HTML + Jinja2: > > #Removed code for simplicity > > <div id="button_add">Add</div> > > {{val}} > > > My JS: > > $(document).ready(function(){ > > var room = 0; > > jQuery.ajax({type:'POST', > > url: '/user/1/5/declare', #I use a direct user > ID and a direct address ID as I'm not sure how to send this to JS from > Pyramid ... yet :). > > data: JSON.stringify(room), > > contentType: 'application/json; > charset=utf-8'}); > > > > $('#button_add').click(function(){ > > room = room + 1; > > }); > > }); > > My view code: > > > @view_config(route_name = 'declare_usage', renderer = 'declara.jinja2') > @view_config(route_name = 'declare_usage_json', renderer = 'json') > def declara_consum(request): > > #Removed code for simplicity > > val = request.POST.get('room') #I get a "None value in my html" if I > change to request.json_body -> I get an error that there is no json to be > parsed. > > return { 'val' : val } > > What happens is that when I open the debugger the POST request is successful > with no data and on the page I get 2 options for 'val': > > 1. None -> when i use val = request.POST.get('room') > 2. Error ''ValueError: No JSON object could be decoded" -> when I use val = > request.json_body > > Also, still can't get it to work if in my JS i change url to be > ''/user/1/5/declare.json' and/or data to {'room' : room} > > Can somebody please point out what I'm doing wrong? > > Many thanks, > Bogdan > > > > -- > You received this message because you are subscribed to the Google Groups > "pylons-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:[email protected]>. > To post to this group, send email to [email protected] > <mailto:[email protected]>. > Visit this group at http://groups.google.com/group/pylons-discuss > <http://groups.google.com/group/pylons-discuss>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/d/optout.
