我在我的視圖中有代碼,但通過ajax發送給我的控制器動作(如add.ctp的最後部分所示)
//add.ctp
<?php
echo $this->Form->create('Poll',array('action' => 'index'));
echo $this->Form->input('one', array('id'=>'name'));
echo $this->Form->input('two', array('id'=>'email'));
echo $this->Form->input('three', array('id'=>'message'));
echo $this->Form->input('four', array('id'=>'four'));
echo $this->Js->submit('Send', array('id' => 'btn'), array(
'before'=>$this->Js->get('#sending')->effect('fadeIn'),
'success'=>$this->Js->get('#sending')->effect('fadeOut'),
'update'=>'#success'
));
echo $this->Form->end();
?>
<div id="sending" style="display: none; background-color: lightgreen;">Sending...</div>
<script>
$('#btn').click(function(event) {
form = $("#PollIndexForm").serialize();
// console.log(form);
$.ajax({
type: "POST",
url: 'pollsController/index';,
data: form,
success: function(data){
//
}
});
event.preventDefault();
// return false; //stop the actual form post !important!
});
</script>
在得到我的控制器
,我做了一個isAjax
要求測試,如果失敗
public $components = array('RequestHandler');
public function index(){
$this->autoRender = false;
if($this->RequestHandler->isAjax()){
echo debug('Ajax call');
}
if(!empty($this->data)){
echo debug('not empty');
}
}
每次都遇到我試圖運行這個和$this->request->is('ajax')
永遠是假的時候「不空」 我的CakePHP的版本是2.3和我已經嘗試$this->request->is('ajax')
和所有。 什麼,我錯過了
你能嘗試打開開發者控制檯或螢火蟲或一些調試工具,並複製請求標頭?另外請注意您的網址'pollsController'是很奇怪的,儘量只** **投票我懷疑你將被重定向 – lp1051