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

时间:2014-08-12 16:50:47

标签: php codeigniter codeigniter-2

即使我已添加" if(!定义(' BASEPATH'))退出('不允许直接脚本访问'); "在控制器之上。实际上我需要在div中显示数据 我的ajax电话: 下面是ajax调用,它调用Createcaptcha来获取数据,而不是数据,它响应"不允许直接脚本访问"

 $(document).ready(function(){
        $.ajax({
            type: "POST",
            url: 'website/Createcaptcha',
            success: function(data){
                $("#captcha").html(data); 
            }
        });

    });

以下是控制器

 public function Createcaptcha(){               
        $image = $this->captcha_model->create_image();
  echo $image;

    }

响应数据以div显示为"不允许直接脚本访问" , 它在xampp localhost

上工作正常

4 个答案:

答案 0 :(得分:1)

检查您的BASEPATH是否在codeigniter中设置。它在根文件夹的index.php中设置。只需回显BASEPATH并查看它的打印内容。

在index.php中找到以下内容

define('BASEPATH', str_replace("\\", "/", $system_path));

答案 1 :(得分:0)

我用<?替换了<?php,由于服务器中的php设置,一切正常。

答案 2 :(得分:0)

请使用

operations = [
  -> { puts "start" },
  -> { sleep 1 },
  -> { puts "halfway" },
  -> { sleep 1 },
  -> { puts "done\n\n" }
]

def safe_chunk(operations, index = 0)
  result = operations[index..-1].each_with_index(index) do |op, idx|
    begin
      op.()
    rescue Exception => e
      safe_chunk(operations, idx) # or idx + 1
      break e
    end
  end
  result.is_a?(Array) ? nil : result
end
database.php 文件中

答案 3 :(得分:0)

我有一个类似的问题,对于可能要为这个问题寻找答案的人,我付了10美分。

在基本路径中,网站名称设置为htts://www.websitename.com,并且客户端打开时没有https(http://www.websitename.com),在某些情况下也没有www(https://websitename.comhttp://websitename.com )。

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

https & www redirecting answer link