未定义索引 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);
}
我正在使用 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);
}