使用 ajax 和 url 控件的 Codeigniter 加载视图

Codeigniter load views with ajax and url control

我在 ajax 加载部分视图时遇到了一些问题。我使用了这个模式:

config/constants.php

define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');

然后ajax需要加载的每个控制器函数包含:

  if(IS_AJAX){
    //action when AJAX request
    $this->load->view("partial_view", $data);
  }else{
    //action when user open page directly in browser
    $this->load->view('full_view',$data);
  }

例如当我在主页 (http://example.com) 并且我想使用示例控制器和编辑操作时。

现在,如果 IS_AJAX 为真,我的内容会正确加载,但浏览器中的 url 仍然是相同的 http://example.com

else 如果IS_AJAX 为假则没有问题。我有 url http://example.com/example/edit/params

如何为 AJAX 请求更改 url 以使其看起来像标准 CI url?

P.S 如果不需要,我不想使用哈希:/

提前致谢。

对不起.. 您可以使用它来更改 URL 而无需加载页面:

history.pushState({},null,'http://example-new-url.com');