CodeIgniter、PHP、jQuery和AJAX

CodeIgniter、PHP、jQuery和AJAX,php,jquery,ajax,codeigniter,Php,Jquery,Ajax,Codeigniter,我想知道人们是如何使用CodeIgniter和jqueryforajax的 在您的AJAX请求中 { url : ???, data : {a:1,b:2}, success: .... } 那么,如何构建URL呢 你呢 将所有JavaScript都放在视图文件中,只需使用site\u url()构建url即可 将所有JavaScript放在外部js文件中,包含一个标题视图,该视图类似于var base\u url=''。然后在外部js文件中有url:base_url+'rest

我想知道人们是如何使用CodeIgniter和jqueryforajax的

在您的AJAX请求中

{
  url : ???,
  data : {a:1,b:2},
  success: ....
}
那么,如何构建URL呢

你呢

  • 将所有JavaScript都放在视图文件中,只需使用
    site\u url()
    构建url即可
  • 将所有JavaScript放在外部js文件中,包含一个标题视图,该视图类似于
    var base\u url=''。然后在外部js文件中有
    url:base_url+'rest/of/path/'
  • 还有别的方法吗
我将我所有的js都放在一个外部文件中,并将其加载到我的模板中

对于特定的ajax请求,只需像平常一样调用页面

$.ajax({
    type: 'POST',
    url: '/ajax/login',
    data: blabla,
    success: function(data) {
    // do something
    },
    dataType: 'json');
});

在回答您的问题时,我没有必要指定基本url,因为在控制器名称之前放置“/”会自动设置站点的根。您还可以使用../etc

也可以通过加载包含JavaScript的视图来完成

我当前从呈现页面末尾的视图加载JavaScript。由于它是一个包含html
的PHP文件,因此您可以使用URL帮助器函数,如
site\u URL()
来生成每个函数所需的URL

示例视图可能包含:

<script>
$.ajax{
    url : "<?=site_url("controller/function")?>",
    data : {a:1,b:2},
}
</script>

$.ajax{
url:“”,
数据:{a:1,b:2},
}

这将为您的JavaScript获取CodeIgniter生成的URL。您甚至可以将变量传递到视图中,以便更好地控制js。

通常我在标题中创建一个小javascript,在其中创建一个base\u url和site\u url变量(通常是我命名为CI的对象的属性,但这是个人的预引用)。我通过用PHP回显这些值来填充这些值。如果将其作为第一个加载的脚本,那么JS中的站点url将始终可用


由于我使用手机,现在无法发布源代码。

如果您在外部文件中编写ajax,则可以在视图文件中定义基本url,如

<script>
     var base_url = '<?php echo base_url(); ?>';
</script>

当您在本地主机上开发url类似于
http://localhost/myproject/
?啊,这是一个很好的观点。我通常在本地开发时更改主机文件,并将配置中的基本url设置为
http://local.website.com.
。或者您可以在apache config.hmm中设置一个虚拟主机,这是一个很好的主意。您将如何编辑主机文件?只需要
local.myproject.com localhost/myproject
?还是我完全错了?读一读这篇文章:我建议做一些简单一点的事情,比如
http://myproject
(只是为了保存任何错误)。但基本上,您需要在apache的httpd.conf中创建一条记录,然后进入主机文件并将127.0.0.1指向myproject。不管怎样,那篇文章应该有帮助。
url : base_url+'controllerName/functionName',