Under the hood, <platinum-sw-fetch> ends up calling toolbox.router.get()
<https://github.com/GoogleChrome/sw-toolbox/pull/11>,  to register what
should be a GET-only handler. I would expect PUT requests to be bypassed as
if there were no service worker involvement.

I'll look into it more and see if I can reproduce. I'm also CC:ing Mat, who
authored sw-toolbox, the underlying library.

Cheers,
-j

On Sun, Jan 31, 2016 at 4:29 PM, Rob Dodson <[email protected]> wrote:

> +Jeff, who may know more
>
> On Sun, Jan 31, 2016 at 1:02 PM, Jim Trainor <[email protected]
> > wrote:
>
>> I'm using platinum-sw and I have a platinum-sw-fetch handler configured
>> to ignore paths that are in my application's xhr request api.  I have
>> configured a platinum-sw-fetch handler expecting to handle both http GET
>> and PUT requests by simply passing them through the client using a "fetch"
>> call.
>>
>> <platinum-sw-register ... >
>>  <platinum-sw-fetch handler="doNativeFetch" path="/myservice(.*)"
>> ></platinum-sw-fetch>
>> .
>> .
>> .
>> </platinum-sw-register>
>>
>>
>> var doNativeFetch = function doNativeFetch(request, values, options) {
>>  console.log('doNativeFetch request', request, values, options);
>>  return fetch(request);
>> };
>>
>>
>> This works as expected for GET requests. I see GET request to 
>> "/myservice/..." logged by my custome doNativeFetch handler, the service 
>> worker doesn't cache these requests as expected.  Http PUT requests also 
>> work (from the clients perspective) but they do *not* appear to be directed 
>> to my doNativeFetch handler - I never see my "doNativeFetch" log message.  
>> This causes a problem when my server returns an 409 status to a PUT request 
>> (in response to a client's attempt to write state data).  My application 
>> code expectes to handle this 409 error when it occurs.  But I never see the 
>> error when I run with the platinum-sw service worker enabled.  Instead I see 
>> the following in Chrome's console:
>>
>>
>> (Here is clients http request)
>> XHR finished loading: PUT "https://abc.example.com/myservice/12345";.
>>
>> (Immediately followed by this, which appears to be the service layer
>> intercept, no my doNativeFetch handler).
>> PUT https://abc.example.com/myservice/12345 409 (OK)  <<< expected, good
>> so far!
>> The FetchEvent for "https://abc.example.com/myservice/12345"; resulted in
>> a network error response: an object that was not a Response was passed
>> to respondWith()  <<< the 409 is not passed-thru, where do I hook into
>> respondWith?
>>
>> (Immediately followed by this, which is my client layer code getting a
>> net::ERR_FAILED rather than the 409 http response - bad!).
>> PUT https://abc.example.com/myservice/12345 net::ERR_FAILED   <<<<
>> problem, client doesn't get the 409
>>
>>
>> ... after much digging, I am a loss as to how to proceed with this. The most 
>> basic issue is that my custom platinum-sw-fetch handler is never called for 
>> the PUT request.  How to I configure a platinum-sw-fetch handler that will 
>> intercept a PUT request and allow me to pass a 409 error through to the 
>> calling client?  Or is that the wrong stategy entirely?  Perhaps somewhere I 
>> provide a FetchEvent.respondWith implementation? But where and how?
>>
>>
>>
>> Follow Polymer on Google+: plus.google.com/107187849809354688692
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Polymer" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/polymer-dev/ae19fc55-5732-4343-b29a-4c8281023a84%40googlegroups.com
>> <https://groups.google.com/d/msgid/polymer-dev/ae19fc55-5732-4343-b29a-4c8281023a84%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

Follow Polymer on Google+: plus.google.com/107187849809354688692
--- 
You received this message because you are subscribed to the Google Groups 
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/polymer-dev/CAFt5L5ZnV6vSsqiy169g7Oh3ddBRiaSteY_MxpQ2XRfmkTFj0w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to