403 使用 base_url() 直接访问页面时禁止访问


403 Access Forbidden when directly accessing a page using base_url()

尝试通过XHR访问页面时收到403错误:

$("form").submit(function( event ) {
  xmlhttp.open("GET","<?=base_url('application/views/pages/search_sql.php'); ?>",true);
  xmlhttp.send();
  event.preventDefault();
});

我可以通过简单的xmlhttp.open("GET","search_sql",true);加载页面search_sql.php,但它不会直接加载脚本 - 相反,它由控制器处理并加载在这种情况下不需要的其他视图。

您正在使用CodeIgniter,那么为什么要尝试直接加载任何内容?

像往常一样调用页面,并添加控制器方法来执行此情况下所需的操作。所以:

假设您有一个名为"Search"的控制器,创建一个名为相关内容的方法,让我们说"special_case"并使用它所需的任何参数调用它

<?php
class Search extends Controller {
    function index()
    {
        // I assume this is what it is currently doing
    }
    function special_case()
    {
        // Make this do whatever is required in this case.
    }

然后使用标准的 CodeIgniter 控制器/method/param1/param2 从你的 Javascript 调用它......机制。