2009/6/10 Alex McAuley <webmas...@thecarmarketplace.com>:
>
> So'k i sorted it .....
>
> On the PHP end i do this ...
>
>  header('Content-Type: application/json');// text/html
>
>
>
> and on
>
> the onSuccess i do this ...
>
>
> onSuccess : function(d) {
>
>       var header=d.getHeader('Content-Type')
>        if(header=='application/json') {
>         var data=d.responseText.evalJSON();
>        } else  { ......
>
> This has saved me hours of work !!!!
>
> Regards
> Alex
>
> ----- Original Message -----
> From: "Richard Quadling" <rquadl...@googlemail.com>
> To: <prototype-scriptaculous@googlegroups.com>
> Sent: Wednesday, June 10, 2009 11:02 AM
> Subject: [Proto-Scripty] Re: Bizzarre goings on
>
>
>>
>> 2009/6/10 Alex McAuley <webmas...@thecarmarketplace.com>:
>>>
>>> Richard.
>>>
>>> On a slight side note is it possible to evaluate the response from the
>>> request to see if it is Json or HTML ...
>>>
>>> In the backend i can output whatever header i like and i would like to on
>>> the request evaluate if it is JSON (and if so do something) or if its
>>> text/html/javascript do somehting else ....
>>>
>>> Is this possible with prototypejs
>>>
>>> Regards
>>> Alex
>>>
>>> ----- Original Message -----
>>> From: "Richard Quadling" <rquadl...@googlemail.com>
>>> To: <prototype-scriptaculous@googlegroups.com>
>>> Sent: Wednesday, June 10, 2009 10:31 AM
>>> Subject: [Proto-Scripty] Re: Bizzarre goings on
>>>
>>>
>>>>
>>>> 2009/6/10 Alex McAuley <webmas...@thecarmarketplace.com>:
>>>>>
>>>>> As i said it was working and nothing changed except one line an - >
>>>>> if($('overlay')) {...}
>>>>>
>>>>> whihc i have now removed ...... its very weird, i will strip it down to
>>>>> bear
>>>>> minimum and build it up agian........
>>>>>
>>>>> I really hate debugging Internet explorer as using debug bar - the line
>>>>> numbers and charachters do not match what is going on!!
>>>>>
>>>>> ----- Original Message -----
>>>>> From: "Richard Quadling" <rquadl...@googlemail.com>
>>>>> To: <prototype-scriptaculous@googlegroups.com>
>>>>> Sent: Wednesday, June 10, 2009 10:17 AM
>>>>> Subject: [Proto-Scripty] Re: Bizzarre goings on
>>>>>
>>>>>
>>>>>
>>>>> 2009/6/10 Alex McAuley <webmas...@thecarmarketplace.com>:
>>>>>>
>>>>>> The JSON returned is ok - this was the first thng i checked....
>>>>>>
>>>>>> Here is the returned JSON..
>>>>>>
>>>>>> {"Error":"No","ErrorMessage":"None","Refresh":"1"}
>>>>>>
>>>>>> As you can see from that and the code i pastebinned there is no
>>>>>> trailing
>>>>>> comma anywhere.. and it -was- working perfectly fine then just stopped
>>>>>> !!
>>>>>>
>>>>>> This is really confusing, i will continue to investigate !
>>>>>>
>>>>>> Thanks
>>>>>> Alex
>>>>>>
>>>>>> ----- Original Message -----
>>>>>> From: "david" <david.brill...@gmail.com>
>>>>>> To: "Prototype & script.aculo.us"
>>>>>> <prototype-scriptaculous@googlegroups.com>
>>>>>> Sent: Tuesday, June 09, 2009 10:09 PM
>>>>>> Subject: [Proto-Scripty] Re: Bizzarre goings on
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Hi Alex,
>>>>>>>
>>>>>>> If the code WAS working, the error could be on the received JSON ?
>>>>>>> One though, IE don't like misplaced comma on JSON. For exemple, last
>>>>>>> element of an array that is followed by a comma don't work on IE.
>>>>>>>
>>>>>>> --
>>>>>>> david
>>>>>>>
>>>>>>>
>>>>>>> On 9 juin, 16:31, Jeztah <webmas...@thecarmarketplace.com> wrote:
>>>>>>>> AFternoon guys/gals
>>>>>>>>
>>>>>>>> http://pastie.org/505747
>>>>>>>>
>>>>>>>> Some weird behaviour in internet explorer .....
>>>>>>>>
>>>>>>>> The code in the link above works in all browsers except Internet
>>>>>>>> explorer ..... It was working untill earlier today and i am now not
>>>>>>>> sure why... i have reverted any changes back to what they were when
>>>>>>>> it
>>>>>>>> was working ....
>>>>>>>>
>>>>>>>> At a glance can anyone see an error that would halt Internet
>>>>>>>> Explorer....
>>>>>>>>
>>>>>>>> The strange thing is .. IE doesnt even throw an error, it does the
>>>>>>>> requests fine just doesnt do the bits after - its like it isnt
>>>>>>>> reading
>>>>>>>> the JSON response....
>>>>>>>>
>>>>>>>> As i said its working in all other browsers fine and has been for a
>>>>>>>> while so i know its not the backend response as it used to work in
>>>>>>>> IE!!..
>>>>>>>>
>>>>>>>> Thanks in advance
>>>>>>>>
>>>>>>>> Alex
>>>>>>> >
>>>>>>>
>>>>>>
>>>>>>
>>>>>> >
>>>>>>
>>>>>
>>>>> What is the header you are using in the JSON response?
>>>>>
>>>>> Normally, if you use an appropriate header, you don't need to
>>>>> evalJSON() as this is done for you and presented as the second
>>>>> parameter to the onSuccess() callback.
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> -----
>>>>> Richard Quadling
>>>>> Zend Certified Engineer :
>>>>> http://zend.com/zce.php?c=ZEND002498&r=213474731
>>>>> "Standing on the shoulders of some very clever giants!"
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> >
>>>>>
>>>>
>>>> You could use FireBugLite [1]. Offers a lot of the facilities found in
>>>> its big brother in FireFox.
>>>>
>>>> You can then use console.info() calls in your code to help report what
>>>> is going on.
>>>>
>>>> Regards,
>>>>
>>>> Richard.
>>>>
>>>> [1] http://getfirebug.com/lite.html
>>>> --
>>>> -----
>>>> Richard Quadling
>>>> Zend Certified Engineer :
>>>> http://zend.com/zce.php?c=ZEND002498&r=213474731
>>>> "Standing on the shoulders of some very clever giants!"
>>>>
>>>> >
>>>>
>>>
>>>
>>> >
>>>
>>
>> Use the appropriate headers on the server.
>>
>> If you send (PHP) ...
>>
>> header("{$_SERVER['SERVER_PROTOCOL']} 200 OK", True, 200);
>> header('Content-type: X-JSON');
>> echo json_encode($m_Response);
>>
>> or
>>
>> header("{$_SERVER['SERVER_PROTOCOL']} 200 OK", True, 200);
>> header('Content-type: application/javascript');
>> echo "{$_POST['JSONP']}(" . json_encode($m_Response) . '); //';
>>
>> for JSON/JSONP, then prototype will handle it correctly.
>>
>> But if you are NOT sending JSON encoded data, but straight HTML, then
>> you use the text/html content type.
>>
>> So. When this gets to prototype, the second param will be populated
>> for the JSON data (up to you to process the object).
>> The JS will be executed for JSONP (you don't need to do anything else).
>> The HTML will be sent to the appropriate container (if you are using
>> an updater request).
>>
>> No need to "determine" anything. Just use the right headers.
>>
>> Well, you could test to see if the second param to the onSuccess is
>> present. If so, then it is JSON, if not then it is not.
>> --
>> -----
>> Richard Quadling
>> Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
>> "Standing on the shoulders of some very clever giants!"
>>
>> >
>>
>
>
> >
>

onSuccess : function(d, data) {
 // data will be the JSON object if it is present. No need for var
data=d.responseText.evalJSON();
}

See http://prototypejs.org/api/ajax/options and scroll down to "Common
callbacks" and "Responder callbacks" ...

"When used on individual instances, all callbacks (except onException)
are invoked with two parameters: the XMLHttpRequest object and the
result of evaluating the X-JSON response header, if any (can be
null)."

and

"When used on responders, all callbacks (except onException and
onCreate) are invoked with three parameters: the requester (i.e. the
corresponding "instance" of Ajax.Request) object, the XMLHttpRequest
object and the result of evaluating the X-JSON response header, if any
(can be null). They also execute in the context of the responder,
bound to the this reference."


Richard.

-- 
-----
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to