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