http problems vs express/nodejs

Fixed Issue #14817547

Details

Author
Bob F.
Created
Nov 24, 2017
Privacy
This issue is public.
Found in
  • Microsoft Edge
Found in build #
16.16299
Reports
Reported by 2 people

Sign in to watch or report this issue.

Steps to reproduce

I have a simple piece of code
fetch(“http://xxx:9084/cmd/08890B/off”)
and my own handler using nodejs/express
If xxx is my Windows machine it works fine (matches app.get(“cmd/:device/:onoff”)) and if I use edge URL line it works. It the code works fine in Chrome and other browers.

But, In Edge 41, when I use the fetch method (or XMLHttp) and xxx is node running on my pi

Everything is the latest version.

Attachments

0 attachments

    Comments and activity

    • I seem to have lost of the test saying that the message doesn’t get to the pay and simply fails.

      [edge] => node/express/windows - works
      [edge] => node/express/pi - fails

      Note that I am using standard node 9 not Charka on the server side.

    • Microsoft Edge Team

      Changed Assigned To to “Steven K.”

    • Hi Bob,

      Can you provide a repro for this?  E.g. your node code and/or a network trace from the F12 debugger networking tab or fiddler4?  I want to see what is going on with this.

      Looks like a fun project.  :-)

      Steve 

    • {if you really want error reports you need something more than this little 7 line box}

      Tracking it down. It seems that when I try to use the URL for the pi it is treated as a cached request and simply not sent. For some reason when I make the request of the same program running under VS on Windows the request goes though.

      Name    Protocol    Method  Result  Content type    Received    Time    Initiator
      http://pi3:9084/cmd/088665/on/OfficeNrCloset    HTTP    GET 200     (from cache)    0 s 
      
      Name    Protocol    Method  Result  Content type    Received    Time    Initiator
      http://192.55.226.39:9084/cmd/088665/off/OfficeNrCloset HTTP    GET 200 application/json    34 B    1.41 s  Fetch
      
      

      Adding on the server –
      res.setHeader("Cache-Control", “public, max-age=2592000”);
      res.setHeader("Expires", new Date(Date.now() + 2592000000).toUTCString());

      On the client adding { cache: 'no-cache’} to the fetch

      Note that the /OfficeNrClose it new so that should, could not have been cached. So what is going on. It’s wierd that the network list I see on the screen is showing the URL without the OfficeNrCloset component. Also, if I put the url on the command line in IE it works fine.

      Hmm - in the console log my catch handler is showing an error

      [object Error]: {description: "Failed to fetch", message: "Failed to fetch", number: -2147418113, stack: "TypeError: Failed to fetch at SetStateNext (http://localhost:51711/bundle.js:1382:13) at Generator.prototype.throw (native code)"}
      

      (BTW – the console window has a bug – it doesn’t keep scrolling up so I have to do it manually)

      number is -7fff0001 hex

      The statement at 1382 is what it should be

                  const fresp = await fetch(url, { cache: 'no-cache' });
      

      URL is
      http://pi3:9084/cmd/088665/on/OfficeNrCloset

      Note the error occured before I had the no-cache

      Ideas? I’m running pretty much the same version of node on Windows and Ubuntu on the pi so it should act the same.

      (BTW, I transpile with TypeScript but want to use ES6 - any chance the Edge for Win Mobile is going to be updated?)

      PS: Had a similar problem with XMLHttp

    • Oops – the server cache code looks backwards but the client no-cache should override it. Will fix

    • BTW, while testing found another bug in Edge or at least bad behavior

      I entered http://pi3:9084/cmd/088665/off/OfficeNrCloset

      when I edited on the address bar to change off to on I get an error message:
      You’ll need a new app to open this pi3
      I presume it’s unrelated but who knows. (I’d put the screen image in but it only works for URLs so won’t bother)

    • Hi Bob,

      Are you still seeing this issue?  If you are, will you provide a simplified repro for this?  The client and the node/express code.  I would like to use the same routing, etc.

      Also, can you test using the IP address of the pi3 instead of the hostname?

      Steve

    • I haven’t thought about it but think that’s evidence that it now works. But I"m on the road so will need to test when I get home to be sure.

    • Great.  Let me know what you find.

    • Microsoft Edge Team

      Changed Status to “Fixed”

    You need to sign in to your Microsoft account to add a comment.

    Sign in