ajax側でprocessData: false
を設定しっぱなしになっててハマったのでちょいメモ
CakePHPに向けてajaxリクエストを送信する際、processData: false
のまま送信すると、$this->dataが空になる
※メモ:processData = trueにすると、data
に指定したデータをクエリ文字列に変換する
processData: true
を指定するか、デフォルトがtrueなので何も指定しないように変更
$.ajax({
cache : false,
url: postUrl,
type: 'POST',
data: postData,
dataType: 'json',
beforeSend: beforeSend,
processData: true // ←これ
})
しかし、フォームがmultipart/form-data
の場合は、processData
とcontentType
をfalseにしないといけないので、コピペでソース持ってきたりするとうっかり忘れやすい
$.ajax({
cache : false,
url: url,
type: 'POST',
data: postData,
dataType: 'json',
contentType: false, // ←ここと
processData: false, // ←ここ
beforeSend: beforeSend
})