我正在尝试对Notification控制器中的一个方法进行ajax调用。
我的方法是:
public function testeAjax()
{
if($this->chamadaAjax())
echo 'Ajax';
else
echo 'Form';
}
$this->chamadaAjax()
只需执行$this->input->is_ajax_request()
这是我的Ajax电话:
$.ajax({
type: "POST",
url: '<?php echo base_url(); ?>/office/notificacao/testeAjax',
success: function(html) {
alert(html);
}
});
我有一个带有两个按钮的表单,一个用于表单提交,另一个用于ajax请求。
当我向ajax添加一些数据时,例如:data:“nome = Gerep”,然后调用它,我会收到Internal Erro 500
当我不发送任何数据时,它会起作用,它在提交时返回 form ,当我调用ajax请求时返回 ajax 。
有什么想法吗?
修改的 在这里使用FireBug是我得到的:
f.support.ajax.f.ajaxTransport.sendjquery-1.7.1.min.js:4
f.extend.ajaxjquery-1.7.1.min.js:4
testenotificacao:140
(anonymous function)notificacao:113
onclick
答案 0 :(得分:1)
不确定您是如何设法使用CRSF保护来破坏服务器的,但是如果您需要在域之间共享内容CORS是您需要的解决方案。只需在您的Web服务器上定义Origin策略,就可以了。
答案 1 :(得分:0)
您是在传递URL中的数据还是定义对象?即:传递的数据(尤其是POST)应该如下所示:
$.ajax({
type: "POST",
url: '<?php echo base_url(); ?>/office/notificacao/testeAjax',
data: { nome: "Gerep" },
success: function(html) {
alert(html);
}
});
而不是这样:
$.ajax({
type: "POST",
url: '<?php echo base_url(); ?>/office/notificacao/testeAjax?nome=Gerep',
success: function(html) {
alert(html);
}
});
答案 2 :(得分:0)
问题在于Cross Site Request Forgery,禁用它解决了问题。