我是CI的新手。
我尝试制作一个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
它工作正常。
所以请帮我解决这个问题。
感谢所有
这里有几件事:
如果要使用base_url
,则无需将其分配给或从配置数组访问它。它可以作为base_url()
提供给您。和site_url()
一样。请在URL帮助程序上查看CodeIgniter的文档。
话虽如此,我建议您不要在href
或src
中使用site_url()
或base_url()
函数,除非一次:
在HTML文档的<head>
中,使用<base>
标记。如果您编写:<base href="<?= site_url();?>">
,则可以简单地使用:controller/function
引用所有控制器和函数。不需要一直调用site_url()
或base_url()
,因为<base>
为文档中包含的所有相对URL指定了一个基本URL。
接下来,如果您收到500个内部服务器错误,请确保启用了PHP错误报告。在控制器的构造函数中,调用error_reporting(E_ALL);
。现在,当出现错误时,请使用Chrome开发工具检查服务器的响应;激发ajax请求并进入开发工具的"网络"选项卡。找到Ajax POST,单击它,您将能够检查服务器的响应。
这个问题是由以下原因引起的
- 合成器误差
- 控制器或模型中的重复功能