gpt4 book ai didi

javascript - 代码点火器 : route doesn't work when calling php script through AJAX

转载 作者:行者123 更新时间:2023-11-28 00:30:18 28 4
gpt4 key购买 nike

我有一个 JS 文件,它使用相对路径调用 php 脚本。使用的路径在 route.php 中有匹配的路由。

问题是,当从 JS 文件调用 php 脚本时,路由似乎没有正确应用。更准确地说,在 php 文件中,函数的参数 $1 和 $2 不包含预期值(如下示例)。

但是,当直接在浏览器中使用 url 时,参数 $1 具有正确的值。

route.php

$route['ajax/quizz/(:any)'] = 'test/ajax/$1';

JS文件

var path        = 'ajax/quizz/load_items';  //path used for the AJAX query

测试.php

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_items) 应与路由 ajax/quizz/(:any) 和结果路径匹配应该是test/ajax/load_items

因此,我们期望调用 Controller test,并执行函数 ajax,参数 $1 = load_items

实际行为

当通过 AJAX 调用时,从 JS 文件中,路径 ajax/quizz/load_items 具有以下效果:

  • 调用 Controller 测试
  • 函数ajax被执行
  • 参数 $1 = 测验(预期:load_items)
  • 参数 $2 = load_items

通过浏览器直接访问

直接在浏览器中使用相同的路径( http://localhost/codeigniter/ajax/quizz/load_items )时,我得到了预期的行为:

  • 调用 Controller 测试
  • 函数ajax被执行
  • 参数 $1 = load_items

您知道我的问题可能来自哪里吗?

最佳答案

将 js ajax 路径设置为完整。不要使用 ajax/quizz/load_items 使用

http://localhost/codeigniter/ajax/quizz/load_items.

关于javascript - 代码点火器 : route doesn't work when calling php script through AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29068060/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com