web-dev-qa-db-fra.com

Demande de facteur avec les données du formulaire de corps à json

J'ai un problème avec le facteur ...

D'un côté, je peux faire cette demande avec le corps sous forme de données. enter image description here

Mais, lorsque j'essaie d'envoyer la même demande avec le corps en raw (json), j'ai obtenu ceci:

enter image description here

J'essaie d'envoyer les données via Angular 5 à un Drupal 8 Backend.

Merci!

6
ValRob

Cela dépendra si le backend peut recevoir un format JSON.

Dans mon cas, je travaille avec le Drupal 8 Module simple Oauth. Et le format pour OAuth 2.0 jetons de porteur est en fait décrit dans une spécification séparée, RFC 675 .

Plus concret ici

Le corps d'entité suit les exigences de codage du type de contenu "application/x-www-form-urlencoded" tel que défini par HTML 4.01 [W3C.REC-html401-19991224].

Donc, dans mon cas particulier, je vais essayer d'envoyer un formulaire de données angulaire.

Merci: Jean Rostan

1
ValRob

Essayez d'ajouter aux en-têtes le type de contenu: application/json

enter image description here

3
Leandro Soriano

Comme indiqué ci-dessus, le backend peut ne pas accepter JSON si vous consultez cette question. J'avais exactement le même problème mais avec un frontal différent. Pour un exemple qui a fonctionné pour moi pour obtenir une réponse de départ, vous pouvez utiliser:

const axios = require("axios");
const querystring = require("querystring");

const authenticate = async () => {

.post((req, res) => {
  let authData = {
    grant_type: "password",
    client_id: "id",
    client_secret: "secret",
    username: "name",
    password: "password"
  };

  const authResponse = await axios.post(
    "http://blah.com/endpoint",
    querystring.stringify(authData)
  );

  return res.send(authResponse.data);
}

authenticate()

C'est dans un format asynchrone/attendent qui exclut quelques étapes de configuration dont vous pourriez avoir besoin, y compris try/catch, mais vous devriez être en mesure de prendre ce qui précède et d'essayer de le convertir à vos besoins et d'obtenir le résultat nécessaire.

1
DORRITO