javascript - Hur skickar man frågeparametrar med Axios?


Jag försöker posta på ett API med några frågeparametrar. Detta fungerar i PostMan/Insomnia när jag försöker skicka mail och förnamn som frågeparametrar:

 http://localhost:8000/api/mails/users/sendVerificationMail?mail=lol%40lol.com&firstname=myFirstName

Men när jag försöker göra det med min React Native-app fick jag ett 400-fel (Ogiltiga frågeparametrar).

Detta är postmetoden :

.post(`/mails/users/sendVerificationMail`, {
  mail,
  firstname
})
.then(response => response.status)
.catch(err => console.warn(err));

(min e-post och förnamn loggas i konsolen som följer: [email och myFirstName).

Så jag vet inte hur man skickar Query-parametrar med Axios i min förfrågan (för just nu skickar den data: { mail: "[email ", firstname: "myFirstName" }.

Svar #1

axios-signaturen för post är axios.post(url[, data[, config]]). Så du vill skicka params-objektet inom det tredje argumentet:

.post(`/mails/users/sendVerificationMail`, null, { params: {
  mail,
  firstname
}})
.then(response => response.status)
.catch(err => console.warn(err));

Detta kommer att POSTA en tom kropp med de två frågeparametrarna:

POST http://localhost:8000/api/mails/users/sendVerificationMail?mail=lol%40lol.com&firstname=myFirstName

Svar #2

Från och med 2021 istället för null var jag tvungen att lägga till {} för att få det att fungera!

axios.post(
        url,
        {},
        {
          params: {
            key,
            checksum
          }
        }
      )
      .then(response => {
        return success(response);
      })
      .catch(error => {
        return fail(error);
      });

Svar #3

I mitt fall svarade API:et med ett CORS-fel. Jag formaterade istället frågeparametrarna till en frågesträng. Det postade data framgångsrikt och undvek också CORS-problemet.

        var data = {};

        const params = new URLSearchParams({
          contact: this.ContactPerson,
          phoneNumber: this.PhoneNumber,
          email: this.Email
        }).toString();

        const url =
          "https://test.com/api/UpdateProfile?" +
          params;

        axios
          .post(url, data, {
            headers: {
              aaid: this.ID,
              token: this.Token
            }
          })
          .then(res => {
            this.Info = JSON.parse(res.data);
          })
          .catch(err => {
            console.log(err);
          });

Relaterade artiklar