Shoot, so now I have to have different behavior based on the web2py
version. If I fix this code so it runs properly, it will quit working on
my production servers unless I upgrade them to 2.9.12 or later.
To make it compatible with both versions I'd need to use
json.dumps(list_of_dictionaries) instead of
response.json(list_of_dictionaries), right? But then that is the wrong
behavior in the long run, right?
-Jim
On Monday, April 20, 2015 at 1:45:53 PM UTC-5, Niphlod wrote:
>
> there you are! response.json now sets content-type = application/json as
> it's supposed to be (if no specific content-type header is specified)
> Previous versions relied on the user setting the right content-type, but
> we noticed that nobody was properly setting it.
>
> <tl;dr> web2py fixed a "behavioural bug", setting the proper content-type,
> and your view worked around a "behavioural bug" (you didn't set the
> content-type) that wasn't supposed to be there in the first place. Strip
> $.parseJSON: it's useless now because response.json doesn't return a string
> that can be parsed as a json object, but the json object itself.
>
> On Monday, April 20, 2015 at 8:41:25 PM UTC+2, Jim S wrote:
>>
>> Using jQuery and the $.ajax function, I'm returning a json object from my
>> controller function using response.json(list_of_dictionaries).
>>
>> I'm seeing an error in firebug saying:
>>
>> SyntaxError: JSON.parse: unexpected end of data at ...
>>
>> Here is the javascript:
>>
>> $.ajax({url: "{{=URL('workorder','get_mixer_dropdown',
>> user_signature=True)}}",
>> data: {site:site}})
>> .fail(function() {
>> alert('There was a problem retrieving the mixer list. Please
>> contact support.');
>> })
>> .success(function(msg) {
>> options = $.parseJSON(msg);
>> $('#workorder_mixer').find('option').remove().end()
>> for (i=0;i<options.length;i++) {
>> $('#workorder_mixer').append(
>> $('<option />')
>> .text(options[i].text)
>> .val(options[i].id)
>> );
>> }
>> $('#workorder_mixer').attr('disabled',false);
>> });
>>
>> The error is on the $.parseJSON(msg) stating that an invalid JSON object
>> was returned. This error doesn't happen on web2py v2.9.5, but does with
>> 2.10.4 beta. Returning from the controller isn't the problem. The problem
>> is when I use response.json(list_of_dictionaries) instead of
>> json.dumps(list_of_dictionaries) to convert my list to JSON.
>> response.json(list_of_dictionaries) used to work and now it doesn't.
>>
>> -Jim
>>
>>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.