Technipelago Blog Stuff that we learned...
Make sure you have the right Content-Type for JSON
Yesterday I spent 4 hours debugging a YUI AutoComplete component that I put on my page via the Grails-UI plugin. The result container (drop down) was not expanded even though the AJAX request returned perfect formed JSON data.
It was not until I put a YAHOO logger on my page and put som extra logging statements in autocomplete-debug.js that I found the simple and stupid problem.
The content-type of my AJAX response was set to “text/json” instead of “application/json”.
I copied an example from the web and did not notice the wrong content type.
The content type “application/json” is registered with IANA but there are many examples out there with other content types for JSON data. Read the specification.
Happy to have found the problem, but very frustrated that I spent that many hours on it.
By the way: Grails make it really simple to render JSON responses. But make sure you specify “application/json”.
def ajaxFindSystems = { def result = Systems.list() render(contentType:'application/json') { results { result.each{sys-> system(id:sys.id, name:sys.name) } } resultset (rows:result.size()) } }
« Tillbaka