ログインフォーム
username:
password:
Ajaxで引っかかったところ①

全く気がつかず2時間くらい詰まったのでメモ
送信元のdataTypeパラメータで設定した型と返り値が違っていたら200 OKで返ってきてもエラーと判定するらしい…
〜Js側〜
$('#send').click(function()
{

var data= { request:$('#request').val() };

$.ajax({
 url: '/hoge/hogehoge',
 type: 'POST',
 data: data,
 dataType: 'json',
 contentType: 'application/json',
 success: function(data) {
  alert("ok");
},
error: function(data) {
  alert("通信エラー");
}
});
});
〜PHP側〜
header("Content-type: text/plain; charset=UTF-8");
$data = isset($_POST['request'])?'success':'fail';

header('Content-Type: application/json');
//↓↓↓最初json_encodeを入れ忘れてたためずっとエラーになってた
echo json_encode($data);
exit;
しっかりと送信した型と同じ型を返してあげる