Quick Search
Social Sites
Lotus Community


« Upgrading to Mootools 1.2 | Main | XPages101 Online is here »
Thursday
Feb252010

Be very careful with your content type for Chrome Ajax requests

We released the first beta for IdeaJam 1.7 today. There are *tons* of changes under the covers including the new MooTools 1.2 framework, on which you can expect more later this week.

But for the moment, I thought I'd pass along one little tip which we ran into. Inevitably during our own testing we had missed this bug. When you're in an idea you can "Click to show votes" and what happens behind the scenes is that an Ajax request is fired off to our votes database, an agent runs and send back a list of the votes related to that idea, when they were cast, who by and so on. That agent had been set up with the following code at the start:

Print |Content-Type:text/javascript; charset=utf-8|
Print |Cache-Control: no-cache|
But what we are actually doing is pre-building some HTML and then just inserting it into a div, it saves a little bit of browser processing time this way. But in Chrome we were getting an error:
Uncaught SyntaxError: Unexpected token <
It took a while to track down the problem, but now I found it, it's obvious. The content-type of the agent needs to actually be set to text/html, not text/javascript. All of the other browsers worked fine with this oversight, even Safari which is a fellow Webkit browser, but Chrome seems to be a lot more picky. So this is just a reminder to make sure you're very precise with what is being sent to Chrome from your server.

 

Reader Comments (2)

I think you meant to write "The content-type of the agent needs to actually be set to text/html, not JavaScript."

February 25, 2010 | Unregistered CommenterThomas Gumz

Thanks Thomas, that's fixed now.

February 26, 2010 | Registered CommenterMatt White

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>