2017-11-11 30 views
2

私はExpress.jsでNodeJSを使用してチームリーダーが作成したAPIにデータを送信する必要のあるアプリケーションを持っています。204エラーコード、次に500エラーコード応答

私の最終的には、UI用にVueJSを使用するラーベルアプリケーションがあります。 Vue JSコンポーネントの内部。 Axiosを使用してAPIにリクエストしています。

axios.post('https://clearkey-api.mybluemix.net/sendcampaign', request) 
       .then(function(response) { 
        //console.log(response); 

       }) 

しかし、このhttps://www.w3.org/Protocols/rfc2616/rfc2616-sec10.htmlに係る手段204を返します。

204コンテンツなし

サーバーは要求を満たしていますが、 エンティティボディを返す必要はありません。また、更新されたメタ情報を返すようにしたいかもしれません。 応答は エンティティヘッダの形式で新しいメタ情報または更新されたメタ情報を含めることができます(存在する場合) 要求された変種に関連付ける必要があります。

クライアントがユーザエージェントの場合、ドキュメントビュー を要求送信の原因としてはならない(SHOULD NOT)。 新しいメタ情報または更新されたメタ情報は、現在ユーザエージェントのアクティブなビューにある 文書に適用されるべきですが、 は、主に、ユーザエージェントのアクティブなドキュメントビューに変更を加えずに、アクションを入力できるようにすることを目的としています。

204応答はメッセージ本文を含んではいけません。したがって、ヘッダーフィールドの後の最初の空白行で終わるメッセージは常に です。

次に、内部サーバーエラー500を返します。私の意見では、サーバーから返されるコンテンツがないため、このエラーが返されます。

なぜその応答を返すのか他の可能な問題を教えてもらえますか?

答えて

3

204の「HTTPメソッド」がOPTIONSであり、500のメソッドがPOSTであるかどうかを確認してください。

両方がそのようにしている場合は、最初CORS pre-flight request(204返すOPTIONS)を見ていると、実際の要求(500返すPOST)。

CORSプリフライトリクエストは、Webページとバックエンドが異なるアドレスでホストされているときにブラウザがサーバーに送信する特別なHTTPメッセージです。たとえば、あなたのウェブサイトがhttp://localhostでホストされていて、アクセスしようとしているバックエンドがhttps://clearkey-api.mybluemix.netでホストされているとします。

204という理由は、バックエンドエンドポイントが/sendcampaignの要求を処理するために正しくセットアップされていることを意味します(無視することができます)。 500の理由は、そのエンドポイントを処理する関数の実装の例外があるためです。

+0

私の質問に答える時間をとってくれてありがとう。はい、204 =オプション、500 = POSTです。私はこれを知りません "500の理由は、そのエンドポイントを処理する関数の実装にある例外のためです。"それは私の最後の機能ですか、私のチームリーダーが作成したAPIの機能ですか? –

+0

500は、バックエンドサーバーでホストされているコードによって返されます: 'https:// clearkey-api.mybluemix.net'。したがって、チームリーダーがエンドポイント '/ sendcampaign'のコードを作成した場合、正しくないリクエストを送信したとしても、サーバはエラーではなく、 '500'ではなく '400'というエラーで答える必要があるため、 。 – MondKin

+1

ありがとうございました。我々はそれを見るでしょう。 –

関連する問題