未定义索引 AJAX Laravel

Undefined index AJAX Laravel

我正在使用 laravel 和 json 将我的数据传递给控制器​​。在 html 模板文件中似乎一切正常。但是当涉及到控制器时, $_GET 方法根本不起作用。未定义索引。

路线

Route::post('/live/{stream_active}/{vid_url}', 'Controller@getAjax');

控制器

public function getAjax($stream_active,$vid_url)
{
    $stream_active = "1";
    $vid_url = $_GET['vid_url']; //Undefine index

    $input = Input::all();
    $full_path = "http://xx.xxx.xx.xx/vod/".$vid_url;

    $input['stream_active'] = $stream_active;
    $input['vid_url'] = $full_path;
    $this->video->create($input);
}

AJAX

$.ajax({
        url : '/live/{stream_active}/{vid_url}',    
        type : 'POST',
        data : { stream_active : '1', vid_url : path_url},
        success : function (data)
        {
            alert('Updated completed.');
        }
});

首先它不起作用,因为您实际上是在发送 POST 请求。但也因为你的路由中有参数,你实际上会在 URL 中使用它进行调用:

$.ajax({
    url : '/live/1/'+path_url,    
    type : 'POST',
    success : function (data)
    {
        alert('Updated completed.');
    }
});

然后使用注入到控制器中的变量:

public function getAjax($stream_active,$vid_url)
{
    $full_path = "http://xx.xxx.xx.xx/vod/".$vid_url;

    $input['stream_active'] = $stream_active;
    $input['vid_url'] = $full_path;
    $this->video->create($input);
}

另一种解决方案是从 URL 中删除参数并像您当前那样发送数据:

Route::post('/live', 'Controller@getAjax');

$.ajax({
    url : '/live',    
    type : 'POST',
    data : { stream_active : '1', vid_url : path_url},
    success : function (data)
    {
        alert('Updated completed.');
    }
});


public function getAjax()
{
    $input = Input::all();
    $input['vid_url'] = "http://xx.xxx.xx.xx/vod/" . $input['vid_url'];
    $this->video->create($input);
}