Laravel Ajax Post返回500

时间:2016-08-09 08:01:30

标签: javascript php jquery ajax laravel

我构建了一个ajax帖子,它将每个滑块值(我使用jquery ui滑块)发送到我的控制器。

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')
    ]);
}

这会返回正确的滑块值

  

日志::信息($请求 - >获得('值'));

但是我在浏览器控制台中收到此错误消息:

  

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未定义的错误

2 个答案:

答案 0 :(得分:0)

您的代码几乎没有变化:

    public function editProductPost(Request $request)
    {
       Log::info($request->get('value'));
       $sliderValue = $request->get('value';

       return view('product.edit', compact('sliderValue'))->render();
    }

答案 1 :(得分:0)

这里的问题是你在控制器中返回一个视图。如果您的视图在其中使用了{{$ sliderValue}},那么它应该可以正常工作。但是javascript无法获得sliderValue变量。

如果你想使用sliderValue,你可以返回这个数组

return [ 'view' => view('product.edit', compact(['sliderValue', 'route']))->render(), 'sliderValue' => $sliderValue ];

这样你就可以向javascript发送一个具有2个属性的对象,一个应包含视图,第二个只包含该值。