indeed! 

overkill!

and I HATE killing overs!

but when you say "ERRest will look at the request" -- isn't that what I'm 
trying to do?

or I should say, how should I bet implement this callback query argument is 
present?

aside from setting up a few keys for jsonp, at this time, I simply set the 
response header to javascript and I "can" the callback method name.

you'll see I had written in some code which I figured would get the requested 
callback name and send via userInfo, which is obviously not needed.

so, can I somehow access the request from here? or how do I otherwise look at 
the request at the right time and do the right thing?






public class ERXJSONPRestWriter extends ERXJSONRestWriter {
        
        public void appendHeadersToResponse(ERXRestRequestNode node, 
IERXRestResponse response, ERXRestContext context) {
                response.setHeader("text/javascript;charset=UTF-8", 
"Content-Type");
        }

        public void appendToResponse(ERXRestRequestNode node, IERXRestResponse 
response, ERXRestFormat.Delegate delegate, ERXRestContext context) {
                String callbackName = (String) 
context.userInfoForKey("callback");
                
                if (callbackName != null)
                        response.appendContentString(callbackName + "(");
                else 
                        response.appendContentString("callback(");
                

                node = processNode(node);
                if (node != null) {
                        node._removeRedundantTypes();
                }
                
                appendHeadersToResponse(node, response, context);
                Object object = node.toJavaCollection(delegate);
                if (object == null) {
                        response.appendContentString("undefined");
                }
                else if (ERXRestUtils.isPrimitive(object)) {
                        response.appendContentString(String.valueOf(object));
                }
                else {
                        
response.appendContentString(JSONSerializer.toJSON(object, 
configWithContext(context)).toString());
                }
                
                response.appendContentString(");");
        }

}



On Jul 13, 2012, at 7:50 PM, Pascal Robert <[email protected]> wrote:

> That's overkill :-) It should be implemented like the window.name transport, 
> e.g. ERRest will look at the request to see if a "callback" query argument 
> was passed, and if yes, wrap it.
> 
>> I'm adding an ERXJSONPRestWriter in Wonder, to support JSONP in ERRest
>> 
>> so, like getting any ERRest format request, you can now also get jsonp:
>> 
>> /ra/Person/306.jsonp
>> 
>> so far, so good 
>> 
>> the spec. calls for an optional callback method name, requested on the URL
>> 
>> /ra/Person/306.jsonp?callback=parseResponse
>> 
>> or, it seems less commonly:
>> 
>> /ra/Person/306.jsonp?jsonp=parseResponse
>> 
>> The RestWriter didn't have access to the originating request, so I figured 
>> I'd send in the method name through the userInfo dictionary and I'd be able 
>> to pick that up in the writer?
>> 
>> So, I thought I'd write something like a ERXJSONPRestResponseWriter? 
>> 
>> But that's not really what I should do? I can see I'm onto the wrong track 
>> here -
>> 
>> Does anyone know the internals of ERRest well enough to help guide me just a 
>> bit here?
>> 
>> I suspect if I can get my head around the design, I can check in this stuff 
>> in case anyone needs cross origin or jsonp support for whatever reason.
>> 
>> Thanks for any advice!
>> 
>> 
>> 
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      ([email protected])
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/webobjects-dev/probert%40macti.ca
>> 
>> This email sent to [email protected]
> 

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to