Hi guys,

I came accross this problem when building my own client framework. The
problem comes from the server failing to properly encode/scape single
quotes in the JSON response.

Take a look at this file, the problem is addressed at the very beginning.
If the first attempt to decode the json string fails a second attempt is
made after single quotes are properly scaped, if it fails again the the
whole proccess/connection dies.

https://github.com/ptejada/ApePubSub/blob/master/js/src/onMessage.js

Hope you guys can properly port this temporary solution i came up with,

Cheers
On Mar 14, 2013 12:20 PM, "Nicolas Guibert" <[email protected]>
wrote:

> Hi Louis,
>
> I already use decodeURIComponent but not encodeURIComponent.
>
> I'll add it and let you know if this helps.
>
> Thanks for your help.
>
> Nicolas.
>
>
>
> 2013/3/14 Louis Charette <[email protected]>
>
>> I would suggest using decodeURIComponent  and encodeURIComponent on your
>> string before and after sending it.
>>
>> I don't have a vanilla APE setup on hand, but when I send  "J'aime les
>> pommés" to a custom command I get back "J'aime%20les%20pomm%C3%A9s".
>> decodeURIComponent bring back the string clean again.
>>
>> Le 2013-03-14 à 11:48, Nicolas <[email protected]> a écrit :
>>
>> Hi,
>>
>> I found a bug when sending a string that includes a single quote.
>>
>> To reproduce the bug, simply try sending a string that has a single quote
>> like this:
>>
>> pipe_user.sendRaw("name_raw",{"msg"," ' ");
>>
>> Then you will get a bug on Core.js on the client side (I use mootools
>> client)
>>
>> Does anybody know why the bug happens? Is there an easy way to correct
>> this?
>>
>> See below for the exact line of the bug.
>>
>> Thanks.
>>
>> Nicolas.
>>
>>
>>
>>
>> /***
>> * Parse received data from Server
>>  */
>> parseResponse: function(raws, callback) {
>> if (raws) {
>> if (this.status < 0 ) {
>>  this.failCounter = 0;
>>  this.status = 1;
>>  this.startPoller();
>> this.fireEvent('apeReconnect');
>> }
>> }
>>
>> var check = false;
>>  var chlCallback;//Callback on challenge
>>
>> if (raws) {
>> raws = JSON.parse(raws); <<<<<================= This is where the error
>> is raised. Why?
>>  Uncaught SyntaxError: Unexpected token ' (repeated 4 times)
>> if (!raws){ // Something went wrong, json decode failed
>> this.check();
>> return;
>>  }
>>
>> for (var i = 0; i < raws.length; i++){ //Read all raw
>>  var raw = raws[i];
>>
>> if (callback && $type(callback) == 'function') {
>> callback.run(raw);
>> }
>>
>> this.callRaw(raw);
>>
>> //Last request is finished and it's not an error
>> if (!this.transport.running()) {
>> if (!raw.data.code || (raw.data.code != '006' && raw.data.code != '007'&&
>> raw.data.code != '005' && raw.data.code!= '001' && raw.data.code != '004'&&
>> raw.data.code != '003')) {
>>  check = true;
>> }
>> } else {
>>  //Invalidate check if something went wrong with other raw or a new
>> request have been launched
>>  check = false;
>> }
>> }
>> } else if (!this.transport.running()) check = true; //No request
>> running, request didn't respond correct JSON, something went wrong
>>  if (check) this.check();
>>  },
>>
>> --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "APE Project" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/ape-project?hl=en
>> ---
>> APE Project (Ajax Push Engine)
>> Official website : http://www.ape-project.org/
>> Git Hub : http://github.com/APE-Project/
>>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "APE Project" 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/groups/opt_out.
>>
>>
>>
>>
>>  --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "APE Project" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/ape-project?hl=en
>> ---
>> APE Project (Ajax Push Engine)
>> Official website : http://www.ape-project.org/
>> Git Hub : http://github.com/APE-Project/
>>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "APE Project" 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/groups/opt_out.
>>
>>
>>
>
>
>
> --
>
>
> <http://www.happymeeple.com>
>
> Nicolas Guibert
>
> Games in Mind Ltd
>
> Managing director
>
> 7 Spencer Walk
>
> Tel: +44 (0)207 435 0315
>
> UK Mobile: +44 (0)7638 657 537
>
> French Mobile: +33 (0)7 53 17 20 13
>
> Email: [email protected]
>
>  --
> --
> You received this message because you are subscribed to the Google
> Groups "APE Project" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/ape-project?hl=en
> ---
> APE Project (Ajax Push Engine)
> Official website : http://www.ape-project.org/
> Git Hub : http://github.com/APE-Project/
>
> ---
> You received this message because you are subscribed to the Google Groups
> "APE Project" 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/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "APE Project" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/ape-project?hl=en
---
APE Project (Ajax Push Engine)
Official website : http://www.ape-project.org/
Git Hub : http://github.com/APE-Project/

--- 
You received this message because you are subscribed to the Google Groups "APE 
Project" 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/groups/opt_out.


Reply via email to