0

Je rencontre un problème de ce type, j'ai un serveur de discussion qui doit communiquer avec le service lambda hébergé dans aws, mais cloud front renvoie l'erreur suivante.Cloud Front: La demande n'a pas pu être satisfaite

BODY: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> 
<TITLE>ERROR: The request could not be satisfied</TITLE> 
</HEAD><BODY> 
<H1>ERROR</H1> 
<H2>The request could not be satisfied.</H2> 
<HR noshade size="1px"> 
Bad request. 
<BR clear="all"> 
<HR noshade size="1px"> 
<PRE> 
Generated by cloudfront (CloudFront) 
Request ID: h5kPdVnMXwh-P7e7mxQ5LL1gj9fAupp_MNAPxmxufI74W4WhE_MByw== 
</PRE> 
<ADDRESS> 
</ADDRESS> 
</BODY></HTML> 

Voici comment ma demande va dans l'application.

const options = { 
    hostname: 'xxx.uat.com', 
    port : '443',   
    path: '/qa/addMessage', 
    method: 'POST' 
}; 
const req = http.request(options, (res) => { 
} 

le chat server.js est hébergé en ec2. Quel est le problème ici?

+0

Quel type d'objet est 'http'? –

+0

const http = require ('http'); – Sajeetharan

Répondre

1

require('http');

C'est un client HTTP - pas un client HTTPS.

La spécification du port 443 ne génère pas de requête HTTPS, même si le port 443 est le port affecté au protocole HTTPS. Il effectue simplement une requête HTTP ordinaire sur le port de destination 443.

Ceci n'est pas une opération valide, CloudFront renvoie une erreur Bad Request. Vous voulez presque certainement require('https');.

+0

Oui c'est la réponse – Sajeetharan

+0

Oui vous avez raison! Merci pour l'explication – Sajeetharan

1

J'ai déjà vu ce problème. Il est dû aux raisons suivantes,

  1. Protocole non valide (en utilisant http au lieu de https)
  2. Unknown verbe http, assurez-vous que le point final est d'avoir le POST mis en œuvre dans votre cas. Si vous utilisez la passerelle API, assurez-vous de l'avoir déployée.
+0

il a mis en œuvre la méthode POST – Sajeetharan

+0

devrais-je utiliser https? – Sajeetharan