0

我是 CI 新手。

我试图制作一个ajax进程。但我收到以下错误。

NetworkError: 500 Internal Server Error - 不允许您请求的操作

这是我的代码

 <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

它工作正常。

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

谢谢大家

4

2 回答 2

1

这里有几件事:

如果您要使用base_url,则无需将其分配给或从配置数组访问它。它可以作为base_url(). 原样site_url()。查看 CodeIgniter 关于URL Helper的文档。

现在,话虽如此,我建议不要在你的 's 或's 中使用site_url()or函数,除了一次base_url()hrefsrc

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

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

于 2012-09-06T17:13:20.230 回答
0

由于以下原因导致此问题

  1. 语法错误
  2. 控制器或模型中的重复功能
于 2012-09-07T02:00:01.490 回答