我是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
它正常工作。
所以请帮我解决这个问题。
感谢所有
答案 0 :(得分:1)
这里有几件事:
如果您要使用base_url
,则无需将其分配给配置阵列或从配置阵列访问它。它可以base_url()
使用。与site_url()
一样。查看URL Helper上的CodeIgniter文档。
现在,话虽如此,我建议您在site_url()
或base_url()
中完全不使用href
或src
功能,但< EM>一旦:
在HTML文档的<head>
中,使用<base>
标记。如果你写:<base href="<?= site_url();?>">
,你可以使用controller/function
来引用所有的控制器和函数。无需继续调用site_url()
或base_url()
,因为<base>
指定了文档中包含的所有相对网址的基本网址。
接下来,如果您遇到500个内部服务器错误,请确保已启用PHP错误报告。在控制器的构造函数中调用error_reporting(E_ALL);
。现在发生错误时,使用Chrome开发工具检查服务器的响应;触发ajax请求并进入开发工具的网络选项卡。找到Ajax POST,单击它,您将能够检查服务器响应的内容。
答案 1 :(得分:0)
由于以下原因导致此问题