Axios without a full URL

I have a single web page application in the domain: sxxxcex-cxxfc.web.app

And the server, from which I will consume the API is at xx.x2.xx.74: 8000

To login with Axios, I do the following:

 const url='xx.x2.xx.74:8000/login/'

axios.get(url+user+"/"+password)
 .then((res: { data: any; }) => {
     setIngresar(false);
     const resquest = res.data;
     if(resquest=="invalid user"){
       console.log(resquest);
     }
     else{
        setItem("isRegistered", resquest[0].user);
     }
  }).catch((err: any) => {
    console.log(err);
    setIngresar(false)
  })

The full path of the GET method is

https://sxxxcex-cxxfc.web.app/xx.x2.xx.74:8000/login/theUSer/ThePassword

But it should be:

https: //xx.x2.xx.74: 8000 / login / theUSer / ThePassword

Could someone tell me how to send this last url without the sxxxcex-cxxfc.web.app?

Answer

It’s because you didn’t add “https://” in the url. So when you send request by axios, it try to find urls in the same domain. If you try your code in local, the url should be https://localhost:3000/xx.x2.xx.74.8000/login/theUSer/ThePassword. So you should add “https://” in front of url like this.

url = 'https://xx.x2.xx.74: 8000/login';
axios.get(url+user+"/"+password)
 .then((res: { data: any; }) => {
     setIngresar(false);
     const resquest = res.data;
     if(resquest=="invalid user"){
       console.log(resquest);
     }
     else{
        setItem("isRegistered", resquest[0].user);
     }
  }).catch((err: any) => {
    console.log(err);
    setIngresar(false)
  })

Leave a Reply

Your email address will not be published. Required fields are marked *