web-dev-qa-db-fra.com

Axios: obtenir deux requêtes OPTIONS & POST

J'ai une application React construite en utilisant Redux et React et j'essaie de publier des données. Tout fonctionne bien, mais je ne sais pas pourquoi je ' m recevoir deux demandes OPTIONS & POST

Peut-être parce que l'URL de l'API n'est pas sur le même serveur que React.

POST: enter image description here

OPTIONS: enter image description here

Voici le code:

const url = 'http://rest.learncode.academy/api/johnbob/myusers';

export function postUsers(username, password) {
    let users = {
        username,
        password,
    };
    return{
        type: "USERS_POST",
        payload: axios({
            method:'post',
            url:url,
            data: users,
        })
            .then(function (response) {
                console.log(response);
            })
            .catch(function (error) {
                console.log(error);
            })
    }
}
11
Liam

Les requêtes CORS non simples via AJAX sont prévolées. En savoir plus ici . Il s'agit d'un comportement de navigateur et rien de spécifique aux axios. Il n'y a rien de fondamentalement mauvais avec ce comportement et si cela fonctionne pour vous, vous pouvez simplement le laisser.

Si vous insistez pour vous en débarrasser, vous pouvez procéder de plusieurs manières:

  1. Vous pouvez définir Access-Control-Allow-Origin: * sur votre serveur pour désactiver CORS.

  2. Faites votre demande CORS simple. Vous devrez modifier le Content-Type en-tête à application/x-www-form-urlencoded ou multipart/form-data ou text/plain. Non application/json.

Je dirais de le laisser tel quel si la demande OPTIONS ne vous bloque pas.

16
Yangshun Tay