HerokuはPOSTメソッドの代わりにOptionsを使用します

プラシャントネギ

バックエンドAPIをHerokuにデプロイし、フロントエンドAPIで呼び出そうとしています。これを実行してログを確認すると、使用されているメソッドがPOSTではなくOPTIONSであり、何も返されないことが示されています。ただし、Postmanからリクエストすると、メソッドがPOSTと表示されます。ローカルホストにデプロイされたときの同じバックエンドコードとフロントエンドは完全に正常に機能します。

1つ上のHerokuLogsはフロントエンドからのリクエストを示し、下はPostManからのリクエストです。

2020-09-22T04:50:00.422091+00:00 heroku[router]: at=info method=OPTIONS path="/api/signin" host=****-backend.herokuapp.com request_id=b93d3a15-23cf-42df-93f1-125d79017edf fwd="****" dyno=web.1 connect=1ms service=9ms status=200 bytes=215 protocol=https
2020-09-22T04:50:00.422973+00:00 app[web.1]: [0mOPTIONS /api/signin [32m200[0m 4.063 ms - 4[0m

2020-09-22T04:54:53.827158+00:00 heroku[router]: at=info method=POST path="/api/signin" host=****-backend.herokuapp.com request_id=91ccaa0c-e676-48aa-8856-364a1413460b fwd="****" dyno=web.1 connect=0ms service=60ms status=200 bytes=770 protocol=https
2020-09-22T04:54:53.822533+00:00 app[web.1]: [0mPOST /api/signin [32m200[0m 52.224 ms - 361[0m

私のフロントエンドアクションコード:

export const signin = (user) => {
  return fetch(`${API}/signin`, {
    method: 'POST',
    headers: {
      Accept: 'application/json',
      'Content-type': 'application/json',
    },

    body: JSON.stringify(user),
  })
    .then((response) => {
      return response.json()
    })
    .catch((err) => console.log(err))
}
下から

OPTIONSは、サーバーとの接続を確認するためにブラウザーによって呼び出されるデフォルトのメソッドです。Postmanはブラウザベースの呼び出しではないため、直接POSTリクエストを行うことができます。

HerokuでOPTIONSメソッドを処理し、200のステータスコードを返す必要があります。それはあなたの問題を解決するはずです。

express.jsを使用している場合は、コードに以下を追加してOPTIONSメソッドを処理できます。

app.use(function(req, res, next) {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
    res.setHeader('Access-Control-Allow-Credentials', true);
    // handle OPTIONS method
    if ('OPTIONS' == req.method) {
        return res.sendStatus(200);
    } else {
        next();
    }
});

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

タイマーの代わりにfinalizeメソッドを使用しますか?

分類Dev

F#メソッドはOptionの代わりにnullを返します

分類Dev

Rubyでは、メソッドチェーンの代わりにキューを使用し、条件文の代わりにルールを使用します

分類Dev

laravelのshowメソッドは、代わりにindexメソッドを返します

分類Dev

AJAX POSTはデータを送信せず、代わりにGETメソッドを介して送信します

分類Dev

GETメソッドの代わりにPOSTメソッドを使用するハイパーリンク<ahref>

分類Dev

jQuery - 「live()」の代わりに「on()」メソッドを使用する方法は?

分類Dev

getPrincipal()メソッドUserDetailsの代わりにユーザ名を返します

分類Dev

FormRun.wait():メソッドは非推奨です。代わりに何を使用しますか?

分類Dev

ready()メソッドの代わりに使用するとjQuery on()メソッドが機能しませんか?

分類Dev

QuickSortまたはMergeSortの代わりにJavaでArrays.sort()メソッドを使用することの欠点

分類Dev

関数は子の代わりに親クラスのメソッドを呼び出しますか?

分類Dev

onbeforeexit()中にメソッドの標準の代わりにsweetAlert.jsを使用して確認する方法はありますか?

分類Dev

TestNGは、テストメソッドの代わりにテストデータを反復処理します

分類Dev

TestNGは、テストメソッドの代わりにテストデータを反復処理します

分類Dev

Railsスコープメソッドは配列の代わりにWhereChainを返します

分類Dev

Html.RenderActionはGetの代わりにPostを使用します

分類Dev

S3はPOSTの代わりにPUTを使用します

分類Dev

代わりにpostメソッドを使用してアンカータグを取得する方法

分類Dev

別のメソッドから1つのメソッドを呼び出すrubyは、値の代わりにnilを返します

分類Dev

独自のメソッドの代わりに親メソッドを使用して子オブジェクトをレールします

分類Dev

#pragma を使用する代わりに .Net メソッドを修飾してコンパイラの警告を抑制することはできますか?

分類Dev

非同期メソッドは、メソッドの呼び出しの代わりに変数をブロックできますか?

分類Dev

UAPushメソッドappReceivedRemoteNotificationの代わりになりますか?

分類Dev

charAt()に特定の文字を指定する代わりに、charAt()メソッドとincludes()メソッドを組み合わせる方法はありますか?

分類Dev

メソッドの呼び出し中に値の代わりにDeferredAttributeを受け取ります

分類Dev

__init __()を使用する代わりにメソッドを使用する必要があるのはなぜですか?

分類Dev

POSTの代わりにGETメソッドを使用してコールバックURLにアクセスするRazorpay

分類Dev

Railsパスヘルパーはスラッシュの代わりにドットまたは未定義のメソッドを生成します

Related 関連記事

  1. 1

    タイマーの代わりにfinalizeメソッドを使用しますか?

  2. 2

    F#メソッドはOptionの代わりにnullを返します

  3. 3

    Rubyでは、メソッドチェーンの代わりにキューを使用し、条件文の代わりにルールを使用します

  4. 4

    laravelのshowメソッドは、代わりにindexメソッドを返します

  5. 5

    AJAX POSTはデータを送信せず、代わりにGETメソッドを介して送信します

  6. 6

    GETメソッドの代わりにPOSTメソッドを使用するハイパーリンク<ahref>

  7. 7

    jQuery - 「live()」の代わりに「on()」メソッドを使用する方法は?

  8. 8

    getPrincipal()メソッドUserDetailsの代わりにユーザ名を返します

  9. 9

    FormRun.wait():メソッドは非推奨です。代わりに何を使用しますか?

  10. 10

    ready()メソッドの代わりに使用するとjQuery on()メソッドが機能しませんか?

  11. 11

    QuickSortまたはMergeSortの代わりにJavaでArrays.sort()メソッドを使用することの欠点

  12. 12

    関数は子の代わりに親クラスのメソッドを呼び出しますか?

  13. 13

    onbeforeexit()中にメソッドの標準の代わりにsweetAlert.jsを使用して確認する方法はありますか?

  14. 14

    TestNGは、テストメソッドの代わりにテストデータを反復処理します

  15. 15

    TestNGは、テストメソッドの代わりにテストデータを反復処理します

  16. 16

    Railsスコープメソッドは配列の代わりにWhereChainを返します

  17. 17

    Html.RenderActionはGetの代わりにPostを使用します

  18. 18

    S3はPOSTの代わりにPUTを使用します

  19. 19

    代わりにpostメソッドを使用してアンカータグを取得する方法

  20. 20

    別のメソッドから1つのメソッドを呼び出すrubyは、値の代わりにnilを返します

  21. 21

    独自のメソッドの代わりに親メソッドを使用して子オブジェクトをレールします

  22. 22

    #pragma を使用する代わりに .Net メソッドを修飾してコンパイラの警告を抑制することはできますか?

  23. 23

    非同期メソッドは、メソッドの呼び出しの代わりに変数をブロックできますか?

  24. 24

    UAPushメソッドappReceivedRemoteNotificationの代わりになりますか?

  25. 25

    charAt()に特定の文字を指定する代わりに、charAt()メソッドとincludes()メソッドを組み合わせる方法はありますか?

  26. 26

    メソッドの呼び出し中に値の代わりにDeferredAttributeを受け取ります

  27. 27

    __init __()を使用する代わりにメソッドを使用する必要があるのはなぜですか?

  28. 28

    POSTの代わりにGETメソッドを使用してコールバックURLにアクセスするRazorpay

  29. 29

    Railsパスヘルパーはスラッシュの代わりにドットまたは未定義のメソッドを生成します

ホットタグ

アーカイブ