http-party / http-server

a simple zero-configuration command-line http server
MIT License
13.65k stars 1.5k forks source link

ERR_INVALID_REDIRECT when running http-server #525

Open matpl opened 5 years ago

matpl commented 5 years ago

Do you want to request a feature or report a bug?

If the issue is a bug report, please provide the steps to reproduce it. Please include the actual command causing the issue if applicable.

npm i -g http-server http-server

Then open chrome at 127.0.0.1:8080

What did you expect to happen?

Open an empty page

What actually happened? Please include the actual error trace and / or stack trace if applicable.

ERR_INVALID_REDIRECT

If the issue is a feature request, what is the motivation / use case for it?

Tell us about your environment

rakeshnayak360 commented 5 years ago

I had the same issue, only wanted to run a server locally for js/html files, I downloaded live-server (npm install live-server -g) and the issue was fixed

i run the following command

npm install live-server -g
cd dist/appname
http-server -o

Still not working. Error "This page isn’t working 127.0.0.1 sent an invalid response. ERR_INVALID_REDIRECT"

Robdel12 commented 5 years ago

Hm, reading through this issue it seems there's no fix yet, right? Are there any plans to move away from ecstatic now that it's a known dead package?

We need windows support & we use http-server in all of our SDK test suites to server a simple TodoMVC app. I'd also rather not see this security warning on each of our SDKs. You can see it failing:

Happy to provide help how ever I can. 👍

Xmader commented 5 years ago

Here's the key quote from the very long text: "I will not accept patches or push updates to ecstatic going forward. This includes security updates."

That's a pity. Or we can create a fork and continue maintaining it.

https://github.com/jfhbrook/node-ecstatic/issues/262

https://github.com/node-extatic/extatic

npm i extatic
Xmader commented 5 years ago

541

ghost commented 5 years ago

Same error here. Look, when you got a dependency that does not serve you anymore, you should put it in a bin and look for another alternative.. What ecstatic did for http-server that worked good in the past and doesn't work anymore? We can do it ourselves. Even if we need to rewrite a good lib to do it. The source of the error is that the author won't mantain the module anymore, he had some conflict with npm because of a security issue. See here: https://github.com/jfhbrook/node-ecstatic/issues/259

Shewolff182 commented 5 years ago

How can you find out what version of Http server is running. I'm a newb, and am dealing with the same issue as most of you. Simply typing in to the cmd, npm install http-server@0.9.0 is not helping :(

scott-stoltz commented 5 years ago

I'm having the same issue. Rolled back to 0.9.0 fixed it.

@Shewolff182 it needs to be installed globally...you need the "-g"

npm install -g http-server@0.9.0

fx-pro commented 5 years ago

Confirmed the issue is due to http-server being incompatible ecstatic 3.3.2. Updating http-server's package.json to require ecstatic 3.3.1 fixes http-server for me.

@mikeycooper After edit the package.json, how we make npm change the ecstatic to 3.3.1? I'm a newbie. Could you please help?

mikeycooper commented 5 years ago

@fx-pro rather than mucking with the package.json file, your best bet is to just install the older http-server 0.9.0, which doesn't have this problem.

npm install http-server@0.9.0

ghost commented 5 years ago

Yup, http-server at version 0.9.0 is working pretty good, like the old good days. Well, I didn't work in a npm module too much, but you can set a version as stable or downloadable for default? So when the user type npm install http-server, the version npm will download is 0.9.0? Until we find a good solution for this.

fx-pro commented 5 years ago

@fx-pro rather than mucking with the package.json file, your best bet is to just install the older http-server 0.9.0, which doesn't have this problem.

npm install http-server@0.9.0

@mikeycooper Thank you for your response, I just asked for future problem. Of course, I could install ecstatic@3.3.1 then manually copy it and replace the ecstatic inside http-server. But it's really great if we can edit one line in package.json (in dependencies) and run some npm (?) to update it accordingly. [I try npm install in the http-server folder but the package folder become 100x bigger (300KB to 30MB) )

lodybo commented 5 years ago

I'm having the same issue. Rolled back to 0.9.0 fixed it.

@Shewolff182 it needs to be installed globally...you need the "-g"

npm install -g http-server@0.9.0

Actually, while running http-server@0.11.1 locally brings up the same issues as everyone else has, running the same version of http-server globally actually works as expected.

Aswinpookkatt commented 5 years ago

This resolv my problem

PS C:\myapp> node --version v12.2.0

PS C:\myapp> npm --version 6.9.0

PS C:\myapp> npm install -g http-server@0.9.0

this works !!!!

Urunov commented 5 years ago

I have a similar issue on it. Please, my source here is it.

  (drwx-wx-wx)   Drop Box/
  (-rw-r--r--) 0B .localized
Urunov commented 5 years ago

Node.js v12.5.0/ ecstatic server running @ 127.0.0.1:8080

danielstern commented 5 years ago

Better to just navigate to localhost:8080/index.html

Urunov commented 5 years ago

Better to just navigate to localhost:8080/index.html

@danielstern thank you for the reply, Addition, I tested chrome --> to ---> Mozilla Now is working well.

TCarmine commented 5 years ago

I had same issue with Ubuntu 18.04, with http-server-legacy kind of also fixed, but prefered thus one.

This indeed solved my issue, but still in dist is not produced any index.html

This resolve my problem

PS C:\myapp> node --version v12.2.0

PS C:\myapp> npm --version 6.9.0

PS C:\myapp> npm install -g http-server@0.9.0

mnjit20 commented 5 years ago

I have just installed the older version and it worked but it has a security vulnerability in this version,

If you are just using for some local development then it's fine.

First, uninstall the existing npm uninstall -g http-server

Install version 0.9.0 npm install http-server@0.9.0

Aswinpookkatt commented 5 years ago

I have just installed the older version and it worked but it has a security vulnerability in this version,

If you are just using for some local development then it's fine.

First, uninstall the existing npm uninstall -g http-server

Install version 0.9.0 npm install http-server@0.9.0

if so how to use latest version?

wedinjoy commented 5 years ago

in the folder path use the file name too and it work like \project\index.html

blackr1234 commented 5 years ago

in the folder path use the file name too and it work like \project\index.html

Of course it will work. All web servers work this way. The point is index.html is a magic file. It should be the default entry point if not specified.

josebrandao commented 5 years ago

On the cmd just type:

http-server [copy and paste the path of your project here] like: http-server C:\Users\JOSE\Desktop\app within the folder should have an index.html file at least.

pwxyz commented 5 years ago

This resolv my problem

PS C:\myapp> node --version v12.2.0

PS C:\myapp> npm --version 6.9.0

PS C:\myapp> npm install -g http-server@0.9.0

npm install -g http-server@0.9.0 and it will work

pedromatosonv commented 5 years ago

downgrading to http-server 0.9.0 fixed my issue too

maximfreerider commented 5 years ago

I had tha same problem, and i used the Incognito Mode in Google Chrome, it`s working)))))))

JinLingfeng commented 5 years ago

This resolv my problem

PS C:\myapp> node --version v12.2.0

PS C:\myapp> npm --version 6.9.0

PS C:\myapp> npm install -g http-server@0.9.0

It works well! Thank you

bjornharrtell commented 5 years ago

Looks like this is due to https://github.com/jfhbrook/node-ecstatic/issues/260.

Zaniyar commented 5 years ago

If you're using nvm, just install another version of node and try again. It worked for me.

KasunGamage commented 5 years ago

I think the issue is somehow related to directories.

When I enter http://localhost:8080, I get the same error, however requesting http://localhost:8080/index.html directly works.

A weird thing happens when I request a directory under the root. When I go to http://localhost:8080/folder it redirects me to this address: http://localhost:8080/folder/////////////////// and produces this error:

This page isn’t working localhost redirected you too many times. Try clearing your cookies. ERR_TOO_MANY_REDIRECTS

Thanks man. it works when i added /index.html.

ronanogor commented 5 years ago

To sump up : 2 work arounds :

So : is there an upcomping V0.12 including this blocker ?

vinay-akkipet commented 5 years ago

Sum up of current workarounds here:

https://stackoverflow.com/a/57536943/567328

spacejack commented 5 years ago

Is this package not maintained any longer? I think I will switch to serve.

domske commented 5 years ago

In my case the latest version 0.11.1 creates a server with a random port. e.g. 20673. The version 0.9.0 works as expected with the default port 8080. Should I open an issue? btw. I can confirm the invalid redirect error. This brought me here. Maybe the random port has to do with the same reason.

aleks091 commented 5 years ago

Running on Windows 10 this is what worked for me:

Actual Result:

Steps that fixed my issue Downgrade ecstatic to version 3.0.0

  1. npm uninstall -g ecstatic
  2. npm install ecstatic@3.0.0
libmw commented 5 years ago

I'm having exactly the same error as @captainturtle,my system is windows10@17763.678,my win7 works fine.

taoabc commented 5 years ago

Exactly the same error, my solution:

npm i -g serve
serve dist

LOL

The issue start at 3 May, not be fixed yet, it's irresponsibility.

waterplea commented 5 years ago

Are you guys gonna fix this? Just force ecstatic to be 3.0.0 in http-server's package json as it clearly doesn't work with with latest 3.whatever. This shouldn't be up to the user of http-server to fix version in their package.json, we do not even use ecstatic. By the way, setting it to 4.1.2 also helped.

thornjad commented 5 years ago

@waterplea we're slowly working on a rewrite without ecstatic in the reboot branch. However, the three of us active maintainers don't have a ton of free time. Plus, personally I never use Windows whatsoever, so I'm lacking the motivation of this issue directly affecting my workflow.

We greatly welcome help on the rewrite! I can probably throw together a "rewrite goals" doc on that branch to give an idea of where we're going.

jmacura commented 5 years ago

I know you know ('cause sadly, no one gonna fix ecstatics...), but still.. just for the record..

This issue is still present. http-server@0.11.1 Windows 10 v1903 64bit tested in Firefox 69.0 and Chrome 76.0

Anyway, I confirm that setting ecstatic dependency to (exactly) 4.1.2 also solves the problem, so this might be an easy fix to do?

IKS-Ploetzwich commented 5 years ago

Same here, issue still present. I also modified the package.json of http-server to require version 3.3.0 of ecstatic. Somehow it just went for 1.4.1 or higher of ecstatic.

EDIT.: Well I thought it fixed it but it still doesn't work. Oh well, back to bugfixing.

Roman-Simik commented 5 years ago

+1

thornjad commented 5 years ago

ecstatic 4.1.2 may fix this issue, but it breaks a few other things which would affect more than just Windows users.

Is it possible to use http-server from WSL on Windows?

hybridherbst commented 5 years ago

The issue is still present.

danbulant commented 5 years ago

Only on windows 10, when tested on Mac it worked perfectly...

friendlyanon commented 5 years ago

Just push an update that fixes the ecstatic version at a working version, if the reboot branch is unlikely to be released in the near future.

C:\
λ cat %APPDATA%\npm\node_modules\http-server\package.json | grep "ecstatic"
    "ecstatic": "3.3.1",

C:\
λ http-server
Starting up http-server, serving ./
Available on:
  [REDACTED]
Hit CTRL-C to stop the server
[2019-09-23T11:52:07.281Z] "GET /" "[REDACTED]"
(node:2372) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated
http-server stopped.

C:\
λ node --version
v12.10.0
KrunalPatel27 commented 5 years ago

Follow-up from one of my students, who says that using http://localhost:8080 causes the bug, but explicitly using http://localhost:8080/index.html works.

Thanks, the reason i had this issue is bcs didnt have default route in my aurelia project.

RameshPogula commented 5 years ago

I'm serving the current directory. I tried with an index.html with an empty body, but I still get ERR_INVALID_REDIRECT. I'm at work so it could possibly be a proxy issue or something. I can try again at home later today to see if I get the same behavior.

ng serve --host 127.0.0.1 --port 8080

RameshPogula commented 5 years ago

Follow-up from one of my students, who says that using http://localhost:8080 causes the bug, but explicitly using http://localhost:8080/index.html works.

Thanks, the reason i had this issue is bcs didnt have default route in my aurelia project.

ng serve --host 127.0.0.1 --port 8080

RameshPogula commented 5 years ago

Above problems... use this command...

ng serve --host 127.0.0.1 --port 8080