0
Controller.java開発ツールのajaxステータスは200ですが、なぜそれはエラーになりますか?
@RequestMapping(value="show_allMember.do",produces = MediaType.APPLICATION_JSON_UTF8_VALUE,method = RequestMethod.GET)
public @ResponseBody String memberList(Model mav)
{
List<HashMap<String, Object>> members = aService.getMemberList();
mav.addAttribute("mList", members);
return "" + mav ;
}
view.jsp
function show_allMember()
{
$('.member_management_area').css('display','block');
$('.member_management').css('color','#fe4978');
$.ajax
({
type: 'GET',
url: 'http://localhost:8080/rachelivf/show_allMember.do',
dataType:'JSON',
success: function(response)
{
alert('success');
$.each(response.mList, function(index, value)
{
});
},
error: function(xhr,ajaxOptions,thrownError)
{
alert('error');
if(xhr.status == 404)
{
alert(thrownError);
}
}
});
}
プロジェクトを実行すると、ステータスは200倍です。
[ネットワーク]タブでは、値もヘッダーとプレビューに表示されます。
しかし、それは
は、私の知る限りでは、データ型が一致しない...エラーではなく、成功に陥ります。エラーになりました。私は正しいですか?私が正しいとすればどうしたらいいですか?
リクエストが機能するが、応答の形式がjQueryに期待しているものと一致しない場合、この動作が発生します。あなたの場合、これは応答が有効なJSONではないことを意味します。コンソールの[ネットワーク]タブを確認して返信先を確認してください –
クライアント側でjsonデータが必要です(例:ajax 'dataType: 'JSON'、')が、サーバーからjsonデータを送信していません。 –
メンバオブジェクトのヌルチェックを追加します。200を返すことは、バックエンドまたはJavaコードではなく、成功のためのネットワークリクエストを意味します。 –