web-dev-qa-db-fra.com

Cette distribution n'est pas configurée pour autoriser la requête HTTP

This distribution is not configured to allow the HTTP request method that was used for this request. The distribution supports only cachable requests. 

J'ai configuré le site Web pour accepter uniquement https sur Amazon cloudfront. En un mot, vous avez un formulaire de connexion php, et une fois la connexion réussie, il redirige l'utilisateur comme suit:

 if(isset($_POST['login'])){

[...]
        echo "<script>window.open('coursePayment.php?crs_id=$crs_id','_self')</script>";

ci-dessous est le formulaire:

 <form style="margin-top:-20px" method='post' action='' class='form-horizontal' role='form'>
       <input type="hidden" id="couponCodeLogin" name="couponCodeLogin">
        <input type="hidden" id="couponCodeLoginAmount" name="couponCodeLoginAmount">
<br><br>
 <div class="group">      
            <input type='text' class='form-control' name='email' required>
      <span class="highlight"></span>
      <span class="bar"></span>
      <label>Email</label>
    </div>

    <div class="group">      
            <input type='password' class='form-control' name='pass' required>
      <span class="highlight"></span>
      <span class="bar"></span>
      <label>Password</label>
    </div>


            <h5 style="color:#FF6400; cursor:context-menu; margin-top:0px" class="displayForgotPassword">Forgot your password? Click here to retrieve it.</h5><br>
            <input type='submit' id='moreInfoButton' name='login' value='Continue' class='btn btn-danger'>                               
          </form> 
20
Info at Layoverbox

Ce que l'erreur essaie de vous dire, c'est que vous ne pouvez pas utiliser POST. Aller à deviner que cacheable signifie GET dans ce contexte. Vous devez aller de l'avant et configurer le cloud front pour autoriser les "requêtes de téléchargement" comme POST, PUT, etc. Dans ce cas, la requête ira à l'origine utilisée par Cloudfront.

Documents AWS: http://docs.aws.Amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating.html

http://docs.aws.Amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating-console.html

http://docs.aws.Amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html

Recherchez les méthodes HTTP autorisées dans le dernier lien.

18
Mircea

Enfin obtenu la page Web où nous pouvons changer les méthodes http. enter image description here

Merci, Sanjay Salunkhe

13
Sanjay Salunkhe

Cette erreur se produit car CloudFront n'est pas configuré pour accepter une demande HTTP envoyée (comme POST ou PATCH).

Pour y remédier, modifiez vos paramètres de distribution CloudFront pour accepter toutes les méthodes HTTP.

Pour ce faire, cliquez sur l'onglet Behaviors de votre distribution CloudFront, sélectionnez le comportement par défaut, cliquez sur Edit, modifiez le Allowed HTTP Methods à GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE, puis clique Yes, Edit en bas à droite pour enregistrer vos modifications.

Change Allowed HTTP Methods in a CloudFront distribution

La diffusion de vos modifications peut prendre plusieurs minutes à votre distribution CloudFront.

6
cgenco