This distribution is not configured to allow the HTTP request method that was used for this request. The distribution supports only cachable requests.
Amazon Cloudfrontでhttpsのみを受け入れるようにWebサイトを構成しました。一言で言えば、PHPログインフォームがあり、ログインに成功すると、次のようにユーザーをリダイレクトします。
if(isset($_POST['login'])){
[...]
echo "<script>window.open('coursePayment.php?crs_id=$crs_id','_self')</script>";
以下はフォームです:
<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>
エラーが伝えようとしているのは、POSTを使用できないことです。キャッシュ可能とは、このコンテキストでのGETを意味します。先に進み、POST、PUTなどの「アップロードリクエスト」を許可するようにクラウドフロントを設定する必要があります。この場合、リクエストはCloudfrontが使用するオリジンに送信されます。
AWSドキュメント: http://docs.aws.Amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating.html
最後のリンクで許可されたHTTPメソッドを探します。
このエラーは、CloudFrontが送信中のHTTPリクエスト(POST
やPATCH
など)を受け入れるように構成されていないために発生します。
これを修正するには、CloudFrontディストリビューションの設定を変更して、すべてのHTTPメソッドを受け入れます。
これを行うには、CloudFrontディストリビューションのBehaviors
タブをクリックし、デフォルトの動作を選択して、Edit
をクリックし、Allowed HTTP Methods
からGET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
、[Yes, Edit
右下の[変更を保存します。
CloudFrontディストリビューションが変更を反映するのに数分かかる場合があります。