我构建了一个ajax post,它将每个滑块值(我正在使用jquery滑块)发送到我的控制器。
Ajax代码:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: 'post',
contentType: "application/json",
url: "{{ Route('editProductPost', $product->id) }}",
headers: {
'X-Requested-With': 'XMLHttpRequest'
},
data: JSON.stringify({
value: getSliderVal,
productId : getPrId
}),
datatype: 'json',
success: function(response) {
// get response
console.log(response.sliderValue)
}
});在我的主计长里我是这样做的:
public function editProductPost(Request $request)
{
Log::info($request->get('value'));
return view('product.edit', [
'sliderValue' => $request->get('value')
]);
}这将返回正确的滑块值,
Log::info($request->get('value'));
但是,我在浏览器控制台中得到了以下错误消息:
POST http://localhost/myApp/public/product/edit/98 500 (内部服务器错误)
稍后,在我的视图中,我想在php循环中调用这个sliderValue。
编辑
我确实有一个csrf令牌:
<meta name="csrf-token" content="{{ csrf_token() }}">编辑
我所做的是:
$sliderValue = $request->get('value');
$route = 'updateProduct';
return view('product.edit', compact(['sliderValue', 'route']))->render();控制台打印我为undefined,如果我执行此{{ sliderValue }},则会得到一个未定义sliderValue的错误。
发布于 2016-08-09 08:16:57
代码的小改动:
public function editProductPost(Request $request)
{
Log::info($request->get('value'));
$sliderValue = $request->get('value';
return view('product.edit', compact('sliderValue'))->render();
}发布于 2016-08-09 14:23:17
这里的问题是您正在返回控制器中的一个视图。如果视图在其中使用{{ $sliderValue }},它应该可以工作。但是javascript无法获得sliderValue变量。
如果您想按原样使用sliderValue,可以返回这个数组
return [ 'view' => view('product.edit', compact(['sliderValue', 'route']))->render(), 'sliderValue' => $sliderValue ];
这样,您就可以将一个具有2个属性的对象发送给javascript,其中一个应该包含视图,另一个只包含值。
https://stackoverflow.com/questions/38845196
复制相似问题