Skip to main content
 首页 » 编程设计

jquery之返回同一页面的 CodeIgniter AJAX 错误

2026年07月28日7bluestorm

当我尝试使用 jQuery 发出 AJAX 请求作为响应时,我得到同一页面的 html! 这是实时预览(由于我修复了它,编辑不可用)

这是我的文件 编辑:我对一些文件进行了更改

主 Controller :

Class Main extends Controller { 
 
function Main()  
{ 
      parent::Controller();    
} 
 
function index(){ 
 
    $this->load->view('oxila_index'); 
}} 

Oxila_index View (html 的 JS 其余部分位于上面的链接中)

 <script type="text/javascript"> 
        $(document).ready(function(){ 
            $("#inv").hide(); 
        }); 
        $(document).ready(function(){ 
            $("#submit").click(function(evt){ 
 
                $.post("/ajax/process", { 
                    url: $("#url").val() 
                }, function(response){ 
                        $("#output").html(""); 
                    $("#inv").show("slow");  
                        $("#output").html(response); 
                }, "text"); 
                evt.preventDefault(); 
            });  
        }); 
    </script> 

Ajax Controller

Class Ajax extends Controller { 
 
    function process(){ 
 
        $data['url'] = $this->input->post('url'); 
        $this->load->view('test',$data); 
        echo "hello world"; 
    } 
} 

请您参考如下方法:

我刚刚尝试了您的页面,效果很好。仅供引用,我在 Linux 中使用 google chrome。

不过我有一些笔记。首先,移动script来自<head>到页面底部,上方 </body> 。这是最佳实践,因为加载 js 代码将阻止其他页面元素、CSS 和图像的并发加载。

其次,如果您不更改服务器端的任何内容,请使用 GET而不是POST 。为了避免在 IE 中缓存,只需添加另一个具有随机值的参数即可。

三、线路$("#output").html("");没有必要。您可以输入 $("#output").html(response);因为.html()将替换容器内的任何现有内容。无需清空它。