web-dev-qa-db-ja.com

React jsで403forbiddenエラーを返すAPIPOST呼び出しをフェッチしますが、同じURLがpostmanで機能します

以下のコードは機能せず、403禁止を返しますが、同じURLが正しい応答の郵便配達ツールを提供します。

fetch('https://example.com/', {
  method: 'POST',
  headers: {'Content-Type': 'application/json', },
 body:JSON.stringify(sampledata),
}).then(result => console.log('success====:', result))
  .catch(error => console.log('error============:', error));
4
Manu Ram V

credentials: 'include'をリクエストに追加する必要があります。

fetch('https://example.com/', {
      credentials: 'include',
      method: 'POST',
      headers: {'Content-Type': 'application/json', },
      body: JSON.stringify(sampledata),

      }).then(result => console.log('success====:', result))
        .catch(error => console.log('error============:', error));
2
Pauli

この記事を読んでください クロスオリジンリソースシェアリング 、そしてAPIの「Content-Type」を「text/plain」に変更してください。それは動作します(フェッチとaxiosの両方)

fetch('https://example.com/', {
  method: 'POST',
  headers: {'Content-Type': 'text/plain', },
 body:JSON.stringify(sampledata),
}).then(result => console.log('success====:', result))
  .catch(error => console.log('error============:', error));
1
Sujith S

おそらくCORSの問題です。通常のWebページはリモートサーバーとデータを送受信できますが、同じOriginポリシーによって制限されます。 postmanのような拡張機能はそうではありません。バックエンドでCORSを設定する必要があります。

1
mradziwon