用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3943|回复: 6
收起左侧

[已解决] js文件里的url怎么写?

[复制链接]
发表于 2014-11-3 14:18:32 | 显示全部楼层 |阅读模式
本帖最后由 meatleung 于 2014-11-12 10:00 编辑

我写了一个js文件,效果是点击指定id的元素,就会将id传递给控制器“icdig”的“detail”方法,其中传递参数的代码是这么写的:
JS复制代码
var url="index.php/icdig/detail/"+id;
xmlHttp.onreadystatechange=stateChanged ;
xmlHttp.open("GET",url,true);xmlHttp.send(null);
复制代码

在第一次进入页面后,js运行正常,url链接正常,是“localhost/index.php/icdig/detail/”;

点击站内其他链接,然后再回来本页面,点击相同的元素,firebug就会提示连接的页面变成了“localhost/index.php/index.php/icdig/detail/”
请问多出来的index.php如何解决?
我猜想是config.php没设置好,但是怎么改?还请指教。

发表于 2014-11-3 15:05:58 | 显示全部楼层
先問幾個問題:
1.你的 $config['base_url'] = ''; ??
2.你的連結是否為絕對路徑 ??
3.若是絕對路徑,用的是 site_url() 還是 base_url() ??
 楼主| 发表于 2014-11-3 15:36:25 | 显示全部楼层
本帖最后由 meatleung 于 2014-11-3 15:57 编辑
Closer 发表于 2014-11-3 15:05
先問幾個問題:
1.你的 $config['base_url'] = ''; ??
2.你的連結是否為絕對路徑 ??

您好.1 我的config.php设置是:
PHP复制代码
 
$config['base_url']        = '';
$config['index_page'] = 'index.php';
 
复制代码

2 您问的链接指的是导航到这一页的链接吗?这一页是主页,链接代码是:
PHP复制代码
<?php echo anchor('/', '主页'); ?>
复制代码

也就是说,第一次进入页面,网址是localhost;从别的页面再跳转过来,网址变成了localhost/index.php,所以才会多了一个index.php?
那么链接代码要改成
PHP复制代码
<?php echo anchor(base_url(), '主页'); ?>
复制代码



我试了下,把链接改为
PHP复制代码
<?php echo anchor(base_url(), '主页'); ?>
复制代码
,而js文件里的链接保持不变,为
JS复制代码
var url='index.php/icdig/detail/'+id;
复制代码
,这样就不会出现多一个index.php了。
问题解决了,好开心,十分感谢{:soso_e113:}


发表于 2014-11-3 15:51:20 | 显示全部楼层
本帖最后由 Closer 于 2014-11-3 15:56 编辑
meatleung 发表于 2014-11-3 15:36
您好.1 我的config.php设置是:

2 您问的链接指的是下面这段代码吗?

site_url()一般用于网址链接,base_url()一般用于资源链接(如CSS文件、图片等)

site_url() 和 base_url() 差別就在於,會不會"自動"加上訪問文件 index.php
一般我比較喜歡用 base_url() ,然後需要的地方自己加 index.php
我覺得這樣比較不會亂

http://codeigniter.org.cn/user_guide/helpers/url_helper.html
site_url() 裡面有一段有提到「 当你将URI段作为参数传给这个函数时,index.php 文件名 (或者是你在config中自定义的 index_page 文件名) 会被加到URL后面, 而且会加上你在config中定义的 url_suffix 后缀。 」

這很關鍵,這意味著,site_url() 會自動幫你加 index.php
而你又加上了一次 index.php

所以才造成兩次 index.php 的出現
再試試吧

任何沒有附上完整路徑的網址
例如:<a href="about">test</a>
都會自動幫你導向 http://localhost/index.php/about

建議是會亂掉的連結都用上完整路徑
例如:<a href="<?php echo site_url('about');?>">test</a>

 楼主| 发表于 2014-11-3 15:54:56 | 显示全部楼层
Closer 发表于 2014-11-3 15:51
site_url() 和 base_url() 差別就在於,會不會"自動"加上訪問文件 index.php
一般我比較喜歡用 base_ur ...

嗯,问题解决了,我在二楼重新编辑了回复,十分感谢~~~
发表于 2014-11-3 15:57:52 | 显示全部楼层
meatleung 发表于 2014-11-3 15:54
嗯,问题解决了,我在二楼重新编辑了回复,十分感谢~~~

如果 site_url() 內沒有要用路徑
用 base_url() 會比較正規
 楼主| 发表于 2014-11-3 16:00:06 | 显示全部楼层
Closer 发表于 2014-11-3 15:57
如果 site_url() 內沒有要用路徑
用 base_url() 會比較正規

激动得手抖打错了,确实应该是base_url,不是site_url(){:soso_e112:}

本版积分规则