首次尝试使用CI,使用Ajax调用方法时出现“找不到页面”错误。仔细检查了名字,现在就迷路了。
[page_a.php]
<script>
function f1() {
$.ajax({
type: 'POST',
url: '<?= site_url("controller_a/method_a") ?>',
error: function (jqXHR, exception) {
var msg = '';
if (jqXHR.status == 0 ) msg = 'Not connected, verify network [000]';
else if (jqXHR.status == 404 ) msg = 'Requested page not found [404]';
else if (jqXHR.status == 500 ) msg = 'Internal server error [500]';
else if (exception == 'parsererror') msg = 'Requested JSON parse failed';
else if (exception == 'timeout' ) msg = 'Time out error';
else if (exception == 'abort' ) msg = 'Ajax request aborted';
else msg = jqXHR.responseText;
alert(msg);
}});}
</script>
[controller_a.php]
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class controller_a extends MY_Controller {
public function method_a() {
echo '<script>alert(":-)");</script>';
}}
答案 0 :(得分:0)
foreach
尝试使用此方法保留Controller的首字母大写并回显网站网址。
答案 1 :(得分:0)
请检查您的 routes.php 文件。该文件中可能还有另一个重定向。 和
答案 2 :(得分:0)
[page_a.php]
<script>
function f1() {
$.ajax({
type: 'POST',
url: '<?= site_url("index.php/Controller_a/Method_a") ?>'
});}
</script>
[Controller_a.php]
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Controller_a extends CI_Controller {
public function Method_a() {
echo '<script>alert(":-)");</script>';
}}
尝试使用大写字母,扩展CI_Controller和index.php,但还没有运气。
我注意到如果我使用
<?= site_url("Controller_a/Method_a") ?>
在html中,以便在加载/呈现页面时调用它,然后找到并调用该方法,但是在页面加载后使用Ajax / JS动态调用时才找到该方法。
在控制台中,地址为
www.example.com/Controller_a/Method_a
实际地址是
www.example.com/web/content/application/controllers/Controller_a.php