如何在php laravel中发送链接作为参数

时间:2014-12-23 19:29:54

标签: javascript php laravel-4 laravel-routing

我有以下代码

eo.changeState = function(clicked_button) {

    // get the selected app path
    var app_path = getAppPath(clicked_button);

    // get the selected app status
    $.ajax({
        type: 'POST',
        url: '/get_app_status/' + encodeURIComponent(app_path),
        context: clicked_button
    })
};

并且正在使用路线

Route::post('get_app_status/{app_path}', [
    'as' => 'get_app_status',
    'uses' => 'LocalDataController@getAppStatus'
]);

问题是当我点击按钮时,我收到以下错误

 POST http://localhost:8000/get_app_status/%2Fmedia%2FData%2FCode%2Fproject%2Fdone%2FServiceManager 404 (Not Found)

我认为它是因为%,但我不知道用javascript方法解决这个问题,除了使用替换方法,只需替换javascript上的所有'/',然后用php中的str_replace将它们恢复

是否有关于javascript的有效修复?

2 个答案:

答案 0 :(得分:2)

将应用程序路径作为POST参数发送

eo.changeState = function(clicked_button) {

    // get the selected app path
    var app_path = getAppPath(clicked_button);

    // get the selected app status    
    $.ajax({
        type: 'POST',
        data: {'app_path': app_path},
        url: '/get_app_status/',
        context: clicked_button
     });
};

路线将是这样的:

Route::post('get_app_status', [
    'as' => 'get_app_status',
    'uses' => 'LocalDataController@getAppStatus'
]);

最后控制器功能:

function getAppStatus() {
    $app_path = Input::get('app_path'); 
}

答案 1 :(得分:2)

不要在网址中加入app_path,而是尝试将其作为参数发送:

eo.changeState = function(clicked_button) {

    // get the selected app path
    var app_path = getAppPath(clicked_button);

    // get the selected app status
    $.ajax({
        type: 'POST',
        data: {'app_path': app_path},
        url: '/get_app_status'),
        context: clicked_button
    })
};

然后路线就是:

Route::post('get_app_status', 'LocalDataController@getAppStatus');