2016-08-22 4 views
4

このWebアプリケーションでは、Amazon APIゲートウェイ&でWebサービスがホストされており、クライアントアプリケーションはcloudefrontサイトでホストされています。サービスはCORS対応です。 HTTP 500,401,403などのエラーでは、statusプロパティを使用してjqxhrオブジェクトからhttpステータスを受け取ることができます。しかし、httpステータス413では、コード内でステータス0が表示されているようです。CORSのhttpステータスコード413を受信できません

リクエストがサーバーで行われた場合、httpステータス413を受信できることに気付きました。しかし、クロスドメインajaxの場合のみ、状態413がステータス0として受信されます。

クロスドメインのajax要求に対してhttpステータス413を処理する方法はありますか。

だけの簡潔さ、HTTPステータス500のために、次のコードブロックを考慮し、401タイムアウトエラーコールバックログの500や401でも413のためには、httpをない注意(以下http://jsfiddle.net/tqgv7z9c/1/を参照してください0

 $.ajax({ 
      url: 'URL to AWS API Gateway', 
      success: function(d){ 
       console.log(d); 
      }, 
      error: function(a){ 
       console.log(a.status); 
      } 
     }); 

答えて

2

を表示HTTPS)

$.ajax({ 
    url: 'http://www.mocky.io/v2/57bb03fc100000460a585000', 
    error: function(a){ 
     $('#code').text(a.status); 
    } 
}); 

私は次のセットアップでhttp://www.mocky.io/を使用してそれを設定:

  • 413要求エンティティが大きすぎ
  • CORSヘッダ

は、あなたが見ることができますGET 413コードが正しく返されます。

あなたが受け取る応答に詳細を見なければ、私は、ブラウザがフォローアップ行動を取っている、304 Found応答がLocationヘッダーで戻ってくる場合、私はこれが問題である知っている、これは新しい要求が発生します想像しますブラウザが続行される前に傍受することはできません。これがあなたのために起こっている場合、API自体を変更する能力がない場合は、あなたができることはほとんどありません。

+0

APIゲートウェイから送信された応答には、応答ヘッダーにAccess-Control-Allow-Originがありませんでした。だから私は、応答の本文や応答のステータスにアクセスすることができませんでした。 問題は私のために解決されます。 –

関連する問題