AJAX路由不适用于我在Laravel中的自定义函数

AJAX routing is not working for my custom function in Laravel

本文关键字:Laravel 自定义函数 路由 不适用 适用于 AJAX      更新时间:2023-09-26

我正在使用Laravel 4.2.6

这是我的函数,通过ajax调用名为savesession的控制器方法

function saveActualSession() {
    return $.ajax({
        url: 'savesession',
        data: {
            my_username: $('input#username').val()
        },
        type: 'POST',
        dataType: 'json',
        success: function(response) {
            console.log("success");
        }
    });
}

在控制器中,我有这个:

public function savesession()
{
    if(Request::ajax())
    {
        $my_username = Input::post('my_username');
        if ($my_username) { Session::put('my_username', $my_username); }
        return $my_username;
    } 
}

会话保存在我的javascript代码中的不同位置被触发

saveActualSession()
.done(function(e) {
    // Things to be done after saving session
})
.fail(function(e) {
    alert('oh no!')
});

问题是它在控制台中给了我这个错误:

"NetworkError: 500 Internal Server Error - http://laravelsite.dev/savesession"

这很奇怪,因为url 100%存在,因为当我试图在控制器中这样做时:

public function savesession()
{
    if(Request::ajax())
    {
        $my_username = Input::post('my_username');
        if ($my_username) { Session::put('my_username', $my_username); }
        return $my_username;
    } 
    else 
    {
        print_r("url is working");
        die();
    }
}

我直接在浏览器中访问url,如:

http://laravelsite.dev/savesession

它给我的print_r消息url不起作用,它就死了。

顺便说一句。我的路线是这样的:

Route::any('savesession', ['as' => 'savesession','uses' => 'RegistrationController@savesession']);

我做错了什么?

我有一个类似的AJAX函数来获取会话,该路由运行良好,没有显示服务器错误。

知道吗?

您有一个错误的方法。只需更改。。。

$my_username = Input::post('my_username');

对此。。。

$my_username = Input::get('my_username');

Get在本文中并不是指HTTP方法,而是指Laravel正在做的事情——获取一个输入值。这个值可以是GET或POST,实际上并没有什么区别。