1
$.getJSON()
関数でエラーを発生させる可能性があります(application/json
ではなく)。この延期は空のオブジェクトを返します(または完了した)ようです。
then
content-type
が処理されたハンドラーはどのようにして見つけることができますか? サービスが利用できないときにサーバーがJSONではなくHTMLを返すことができる状況があります。
$.getJSON()
関数でエラーを発生させる可能性があります(application/json
ではなく)。この延期は空のオブジェクトを返します(または完了した)ようです。
then
content-type
が処理されたハンドラーはどのようにして見つけることができますか? サービスが利用できないときにサーバーがJSONではなくHTMLを返すことができる状況があります。
$.getJSON()
は、応答がtext/html
の場合に失敗します。この例を参照してください:
$.getJSON('http://httpbin.org/html')
.then(() => console.log('success'),() => console.log('error'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
ありがとう、確かに、正しいコンテンツタイプを指定せずにどこか$ .ajaxを使用しているようです。 – yavalvas
応答が空であるとき、なぜあなただけのハンドラ内で例外をスローしませんか? –
実際には非常に単純です。ステータスが20xで、応答が$ .parseJSONによって正常に解析された場合、成功したと見なされます。開発者はしばしばそれを返すことを忘れるので、content-typeは無視されます。 .thenでnullをテストし、nullまたは空の文字列(またはサーバを修正する)であれば、約束を拒否する必要があります。 –