Ajaxの戻りステータスがエラーとなる場合の原因をまとめてみました。
Ajaxの戻りステータスがエラーとなる場合の原因
原因1)リクエスト送信時に指定したデータタイプと戻り値のデータタイプが異なる
送信時に指定したdataTypeは"json"だが、戻り値としてxml形式のデータが返ってきているなど。戻ってきた値をコンソール等に出力してデータ形式が正しいか確認してみてください。
原因2)戻り値のデータが壊れている
サーバ側で生成したjsonやxmlが、タグの不整合などで正しい形式となっていない。
よくあるのは、タグの不整合により正しいxmlになっていなかったり、日本語が文字化けしていて変な値となっていたりするのでこの辺を確認してみてください。
戻ってきたxmlやjsonの文字列を、ブラウザ等で表示させてみると壊れていないかどうか確認できます。
原因3)データタイプがjsonの時、値にnullが含まれている
戻って来たjsonデータの値がnullとなっていると、Ajaxでは正しいデータとして認識してくれません。サーバ側でnullは空文字「""」に置き換えるなどしてください。
【OKな例】{"key1": "", "key2": ""}
このパターンでエラーとなる事例が多いです。
原因4)呼び出しているAjaxのURLが間違っている
呼び出すURLが間違っていると戻りステータスはエラー(404)になります。
URLが合っていると思い込んでいてハマるパターンが多いので、URLを今一度確認してみてください。
まとめ
- 私の経験上、Ajaxの戻りステータスがエラーとなる時は戻ってきた値に問題がある事が多いので、戻ってきた値を丹念に調べるのが解決への近道かと思います。