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;
しっかりと送信した型と同じ型を返してあげる