问题
I'm using npm json-server
from here. It used to work great for my needs: run a server on my PC and do GET
requests to local IP (192.168.1.XX). I reinstalled it and now I can do requests only to localhost or 127.0.0.1. Can't do requests to local IP (cmd ipconfig) anymore. I'm getting this error:
As @fvu mentioned here
this means that the server software is configured to listen on the localhost interface only. This is a configuration item and to avoid exposing a potentially unsecure server many server programs come preconfigured to listen on localhost only.
So is there a way to access this server via local IP as long as json-server doesn't have some extra parameters to enable/disable it?
回答1:
I found the solution for this issue:
json-server --host 192.168.1.XXX my_file.json
Using this command, server is deployed on my local IP, and Windows asks for a firewall exception.
Another solution is to switch to .NET server - another free simple fake server where I can setup local IP as endpoint.
All it needs to:
- install .NET
use CMD commands:
git clone https://github.com/ttu/dotnet-fake-json-server.git cd dotnet-fake-json-server/FakeServer dotnet run [--file] [--urls] #like so in my case: dotnet run --file_data.json --urls http://192.168.1.192:57602
回答2:
Localhost if you will use the same device:
json-server --watch filename.json
the localhost IP is 127.0.0.1 so, you can access this filename.json by 2 ways, either by
- http://localhost:8000/filename.json
- http://127.0.0.1:8000/filename.json
In case you want to access the localhost from another computer/mobile device, place the IPV4 address of your computer
json-server --host 192.168.0.xx file.json
You can also assign a port number of your own using this command:
json-server --host 192.168.0.xx file.json --port 4000
then run it on any device connected with the same network using
- http://192.168.0.xx:4000/file.json
Finally if you did not understood where did i take this host IP from, Go to command prompt > config /all and look for IPv4 address, copy paste that address to this URL, remember that devices should be on the same network to access this IP.
回答3:
Another option that worked for me:
json-server -H 0.0.0.0 -p 3000 -w db.json
Note: You need to enable port 3000 for TCP/UDP through firewall though. Something like this
sudo ufw allow 3000
回答4:
Here's another method that worked for me. If you start json-server using your local LAN IP (e.g. 192.168.1.45), you can access the server using an IP address (but not localhost for some reason). For example...
json-server [insert your JSON file] --host [insert your LAN IP]
Hope that helps!
来源:https://stackoverflow.com/questions/51026532/json-server-cannot-access-via-local-ip