以下のようにjsでcakephpのアクションにpostを投げています。返り値はcakeのアクションでレンダーしているctpのページのhtmlが帰ってきています。しっくりこないのですが、返り値は「cakeのアクションでレンダーしているctpのページのhtml」ということでいいのでしょうか?
また、返り値を変更することはできるのでしょうか。cakeのアクションでreturn falseとしたときに返り値はレスポンスかnullだけだよというエラーが出たので、nullに変更してみようとしたのですが、return null としてもnullが帰ってくるわけではなく変わらずhtmlが帰ってきました。返り値を変更できるとしたらどうすれば良いのでしょうか。
jsは昨日はじめて触ったので完全に初心者なのですが、ご助言いただけるとありがたいです!
javascript
1 $(document).on('click', '#js-submit-button', function(){ 2 var email = $('.js-email').val(); 3 var csrf = $('input[name=_csrfToken]').val(); 4 5 $.ajax({ 6 url: action, //cakePHPのコントローラーのアクションに投げる 7 type: 'POST', 8 data: { 9 'email': email, 10 }, 11 beforeSend: function(xhr) { 12 xhr.setRequestHeader('X-CSRF-Token', csrf); 13 }, 14 dataType: 'html', 15 timeout: 3000, 16 }).done(function(data) { //返り値dataにはhtmlが入っている 17 $('.jsform').load('/records/success') 18 } 19 }).fail(function(data) { 20 $('.jsform').load(action); 21 }) 22 });
cakePHP
1 public function shareByEmail($id) 2 { 3 (略) 4 return null; #効かない 5 $this->render('/Element/share_records/email_form', 'ajax'); #ここでrenderしている先のhtmlが返り値としてjsに渡ってきている 6 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/18 02:35