[英]codeigniter "No direct script access allowed"
even i have added "if (; defined('BASEPATH')) exit('No direct script access allowed'). " on top of controller:Actually I need to display data in div my ajax call below is ajax call which calls Createcaptcha获取数据,但它响应“不允许直接脚本访问”而不是数据
$(document).ready(function(){
$.ajax({
type: "POST",
url: 'website/Createcaptcha',
success: function(data){
$("#captcha").html(data);
}
});
});
下面是 controller
public function Createcaptcha(){
$image = $this->captcha_model->create_image();
echo $image;
}
响应数据在 div 中显示为“不允许直接脚本访问”,在 xampp localhost 上运行良好
检查您的BASEPATH是否在codeigniter中设置。 它在根文件夹的index.php中设置。 只需回显BASEPATH并查看其打印内容即可。
在index.php中找到以下内容
define('BASEPATH', str_replace("\\", "/", $system_path));
我替换了<?
用<?php
,由于服务器中的php设置,一切工作正常。
请用
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
在database.php文件中。
我有一个类似的问题,对于可能要为这个问题寻找答案的人,我付了10美分。
在基本路径中,网站名称设置为htts://www.websitename.com,并且客户端打开时不带https( http://www.websitename.com ),在某些情况下也没有www( https://websitename.com或http: //websitename.com )。
由于它们都不匹配定义的基本路径,因此该请求不被视为ajax请求。 解决方案:确保您具有正确的重定向(从http到https以及非www到www)。
在我的情况下,项目路径(基本 URL)是错误的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.