Javascript 代码点火器:路径不';在通过AJAX调用php脚本时无法工作
我有一个JS文件,它使用相对路径调用php脚本。使用的路径在route.php中有一个匹配的路由 问题是,当从JS文件调用php脚本时,路由似乎没有正确应用。 更准确地说,在php文件中,函数的参数$1和$2不包含期望值(下面的示例) 但是,在浏览器中直接使用url时,参数$1的值是正确的 route.phpJavascript 代码点火器:路径不';在通过AJAX调用php脚本时无法工作,javascript,php,ajax,codeigniter,routes,Javascript,Php,Ajax,Codeigniter,Routes,我有一个JS文件,它使用相对路径调用php脚本。使用的路径在route.php中有一个匹配的路由 问题是,当从JS文件调用php脚本时,路由似乎没有正确应用。 更准确地说,在php文件中,函数的参数$1和$2不包含期望值(下面的示例) 但是,在浏览器中直接使用url时,参数$1的值是正确的 route.php $route['ajax/quizz/(:any)'] = 'test/ajax/$1'; public function ajax($elt,$elt2 = "arg2"){
$route['ajax/quizz/(:any)'] = 'test/ajax/$1';
public function ajax($elt,$elt2 = "arg2"){
switch($elt){
case 'quizz' :
echo "Shouldn't come here. Argument should be 'load_items': $1 $2";
//$this->ajax_quizz();
break;
case 'load_items' :
$this->load_items($this->input->post(null,true));
break;
case 'add_stats' :
$this->add_stats($this->input->post(null,true),$_SESSION['id']);
break;
default :
echo 'Unknown ajax function '.$elt;
}
}
JS文件
var path = 'ajax/quizz/load_items'; //path used for the AJAX query
Test.php
$route['ajax/quizz/(:any)'] = 'test/ajax/$1';
public function ajax($elt,$elt2 = "arg2"){
switch($elt){
case 'quizz' :
echo "Shouldn't come here. Argument should be 'load_items': $1 $2";
//$this->ajax_quizz();
break;
case 'load_items' :
$this->load_items($this->input->post(null,true));
break;
case 'add_stats' :
$this->add_stats($this->input->post(null,true),$_SESSION['id']);
break;
default :
echo 'Unknown ajax function '.$elt;
}
}
预期行为
执行AJAX查询时,指定的路径(AJAX/quizz/load_项)应与路由AJAX/quizz/(:any)匹配,并且生成的路径应为test/AJAX/load_项
因此,我们希望调用controllertest,并执行函数ajax,参数为$1=load\u items
实际行为
通过AJAX从JS文件调用时,路径AJAX/quizz/load_items具有以下效果:
- 控制器测试称为
- 函数ajax被执行
- 参数$1=测验(应为:加载项目)
- 参数$2=加载\u项
- 控制器测试称为
- 函数ajax被执行
- 参数$1=加载\u项
您看到我的问题可能来自哪里了吗?将js ajax路径设置为完整路径。而不是使用
ajax/quizz/load\u项目
http://localhost/codeigniter/ajax/quizz/load_items.
你好,谢弗。首先,谢谢你的回答。正如您所建议的,当我放置完整的URL时,它确实起作用。然而,对我来说,保持相对路径非常重要,因为以后不会“localhost/codeigniter/ajax/quizz/load_items,但类似于www.my-website/ajax/quizz/load_items。所以我真的需要保持一个相对的路径。你可以在这里看看如何动态地创建初始部分Hello Shaiful。谢谢。你提供的链接纠正了我的问题。