2012-09-06 41 views
0

我是CI的新手。Codeigniter Ajax - 无法正常工作获取网络错误

我试着做一个ajax过程。 但我收到以下错误。

NetworkError:500内部服务器错误 - 您刚才的请求不允许

这里是我的代码

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#submit').click(function() { 
      var form_data = { 
      comment : $('#comment').val(), 
      ajax : '1' 
     }; 
     $.ajax({ 
      url: "<?php echo $this->config->item('base_url'); ?>comment/insert", 
      type: 'POST', 
      async : false, 
      data: form_data, 
      success: function(msg) { 
      $('#emsg').html(msg); 
      } 
     }); 
     return false; 
    }); 
}); 
</script> 
But when i access the url directly 
<?php echo $this->config->item('base_url'); ?>comment/insert 

它的正常工作。

所以请帮我解决这个问题。

感谢所有

+0

复制功能上的AJAX的另一端执行该脚本破呼叫。也许通过控制台验证你的发布数据? – Rooster

+0

这是发布数据 comment = sd&ajax = 1 它工作正常 –

+0

当你直接访问url时,你并没有发布给它。我会说你的插入函数var_dump发布数据,然后它会出现在页面上的#emsg包含器中。然后尝试通过直接使用插入的数据访问来运行该功能。 – Rooster

回答

1

几件事情在这里:

如果你要使用base_url,就没有必要将它分配给,或者从配置阵列访问它。它可以为您提供base_url()。至于site_url()。检查CodeIgniter的文档URL Helper。现在

,随着中说,我建议不使用在所有的site_url()base_url()功能在您href的,或src的,除了一次

在HTML文档使用的<head><base>标记。如果你写:<base href="<?= site_url();?>">,你可以简单地引用你所有的控制器和功能:controller/function。无需继续拨打site_url()base_url(),因为<base>为文档中包含的所有相对URL指定了基本URL。

接下来,如果您收到500个内部服务器错误,请确保已启用PHP错误报告。在您的控制器调用error_reporting(E_ALL);的构造函数中。现在,如果发生错误,请使用Chrome开发工具检查服务器的响应;触发ajax请求并进入开发工具的Network选项卡。找到Ajax POST,点击它,你就可以检查服务器回应的内容。

0

此问题会导致由于以下原因

  1. 了Syntex错误
  2. 在控制器或意味着什么模型