簡體   English   中英

Ajax POST 路由 URL 在 CodeIgniter 4 中顯示 404

[英]Ajax POST route URL showing 404 in CodeIgniter 4

我在使用 Ajax 和路由時遇到問題。 我正在使用 Codeigniter 4.2.1。

當我嘗試使用 ajax 提交登錄表單時,出現 404 Not found 錯誤。

以下是我正在使用的提及代碼:

HTML 表單

<form id='loginFormScript' method='POST'>
<input type="email" id="emailLogin" name="emailLogin" >
<input type="password" id="passwordLogin" name="passwordLogin" >
<button type="submit">Submit</button>

AJAX 腳本

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
    $("#loginFormScript").submit(function(e) {
        alert("hello");
        e.preventDefault();
        $.ajax({
            url: '<?php echo base_url('save-user'); ?>',
            type: 'POST',
            data: $('#loginForm').serialize(),
            dataType: "json",
            success: function(data) {
               //SUCCESS CODE
            }
        });
    });
</script>

路線

$routes->setDefaultNamespace('App\Controllers');
$routes->setDefaultController('Home');
$routes->setDefaultMethod('index');
$routes->setTranslateURIDashes(false);
$routes->set404Override();
$routes->get('/', 'Home::index');
$routes->get('/login', 'Home::login');

$routes->get('/new1', 'Home::loginCheck');
$routes->get('/new', 'Home::login');
$routes->post("/save-user", "Home::saveUser");

我的控制器

namespace App\Controllers;
class UserController extends BaseController
{
    public function __construct()
    {
            helper(['form', 'url']);
    }
    public function index()
    {
        return view('welcome_message');
    }
    public function login()
    {
      return view('login');
    }
    public function saveUser()
    {
            print_r($_POST);exit;
    }
}

解釋:

應用程序/配置/Routes.php

$routes->post("/save-user", "Home::saveUser");

上面的路由定義指向Home控制器中的saveUser方法。 然而,根據您上傳的源代碼,該方法存在於完全不同的控制器中。 因此出現404 Not Found錯誤。

解決方案:

相反,使用這個:✅

$routes->post("/save-user", "UserController::saveUser");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM