web-dev-qa-db-ja.com

JSONへのボディフォームデータを含むPostmanリクエスト

郵便配達員に問題があります...

一方では、フォームデータの本文を使用してこの要求を行うことができます。 enter image description here

しかし、私がraw(json)の本体で同じリクエストを送信しようとすると、私はこれを得ました:

enter image description here

Angular 5 to a Drupal 8 Backend。

ありがとう!

5
ValRob

バックエンドがJSON形式を受信できるかどうかに依存します。

私の場合、Drupal 8 Module simple Oauthを使用しています。 OAuth 2.0 Bearerトークンの形式は、実際には別の仕様 RFC 675 で説明されています。

より具体的な ここ

エンティティ本体は、HTML 4.01 [W3C.REC-html401-19991224]で定義されている「application/x-www-form-urlencoded」コンテンツタイプのエンコード要件に従います。

したがって、私の特定のケースでは、angularからフォームデータを送信しようとします。

ありがとう: ジャン・ロスタン

1
ValRob

Content-Type:application/jsonをヘッダーに追加してみてください

enter image description here

3
Leandro Soriano

前述のように、この質問を表示している場合、バックエンドはJSONを受け入れない場合があります。私はまったく同じ問題を抱えていましたが、フロントエンドが異なりました。ちょうど最初の応答を得るために私のために働いた例のために、あなたは使用するかもしれません:

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()

これはasync/await形式であり、try/catchを含む必要ないくつかのセットアップ手順を除外しますが、上記を実行して必要に応じて変換し、必要な結果を得ることができるはずです。

1
DORRITO