繁体   English   中英

codeigniter“不允许直接脚本访问”

[英]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.comhttp: //websitename.com )。

由于它们都不匹配定义的基本路径,因此该请求不被视为ajax请求。 解决方案:确保您具有正确的重定向(从http到https以及非www到www)。

https和www重定向答案链接

在我的情况下,项目路径(基本 URL)是错误的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM