Thierry,

1) Our JQuery Ajax call:

$.ajax({
                 type: 'GET',
                 url: myUrl,
                 success: onAjaxSuccess,
                 error: onAjaxError,
                cache: false,
                beforeSend :
function(xhr){xhr.setRequestHeader('Accept','application/xml')}
             });

Will generate Accept header of  "*/*, application/xml". We want
"application/xml".

2) Our Restlet 1.1.5
        
@Override
public Restlet createRoot() {
                // Create a router Restlet.
                Router router = new Router(getContext());
        
                // Attach our routers.
                router.attach("/test", HelloWorldResource.class);
                router.attach("/file/status", FileStatusResource.class);

                return router;
        }


public FileStatusResource(Context context, Request request, Response
response) {
                super(context, request, response);
                
                // Read URI query strings.
                Form form = request.getOriginalRef().getQueryAsForm();
                if (form != null) {
                        setUser(form.getFirstValue("user", isIgnoreCase()));
                        setOriginalUri(form.getFirstValue("originalUri", 
isIgnoreCase()));
                        setAction(form.getFirstValue("action", isIgnoreCase()));
                }
                
                // Variants that our resource generates.
                getVariants().add(new Variant(MediaType.APPLICATION_JSON));
                getVariants().add(new Variant(MediaType.APPLICATION_XML));
                
        }

@Override
public Representation represent(Variant variant) throws ResourceException {
                Representation representation = null;
                
                // Validate request
                if (StringUtils.isBlank(getUser())) {
                        log.debug("GET FileStatusResource bad user. ");
                        representation = representError(variant, new 
ErrorMessage());
                        
getResponse().setStatus(Status.CLIENT_ERROR_BAD_REQUEST);
                        return representation;
                }
                
                representation = representGet(this,variant);
                return representation;
        }

public final Representation representGet(CoralReefResource crr, Variant
variant)
                        throws ResourceException {
                Representation representation = null;

        log.debug("HTTP GET for : " + variant.getMediaType().getName());
...




Thierry Boileau wrote:
> 
> Hello Andrzej,
> 
> I wonder if the source cause if your issue is out there.
> Could you tell us how are built your resources? How do you send the 
> request using jquery?
> 
> Best regards,
> Thierry Boileau
> 
>> Our Restlet resource server APPLICATION_JSON and APPLICATION_XML. A
>> JQuery
>> client, sets the Accept Type to "*/*, application/xml". So the Restlet
>> negotiates that APPLICATION_JSON should be returned as expected. However,
>> we
>> want APPLICATION_XML to be served. The problem is that we are unable to
>> remove the "*/*" as the first Accept type in JQuery. JQuery seems to tack
>> on
>> the "*/*" as an Accept Type to every request we send.
>>
>> Is there an elegant way in Restlet to filter the "*/*" values, e.g. ALL
>> or
>> APPLICATION_ALL? We can certainly get the Accept Headers in Restlet and
>> re-arrange the Accept list ourselves to "override" the Restlet
>> negotiation.
>> We are thinking of filtering, after Restlet negotiation, based on the
>> User-Agent header for this particular JQuery client, so as not to "break"
>> the Restlet behaviour for other clients (which is what we expect.)
>>
> 
> ------------------------------------------------------
> http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2430776
> 
> 

-- 
View this message in context: 
http://n2.nabble.com/MIME-Accept-Type-filter-tp4173789p4175554.html
Sent from the Restlet Discuss mailing list archive at Nabble.com.

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2430798

Reply via email to