无法加载资源:服务器使用laravel在ajax中以500(内部服务器错误)状态响应

时间:2018-09-15 10:48:51

标签: ajax laravel laravel-5

app.jss文件

Copy Bundle Resource

我的脚本在查看代码中

$('#modal-save').on('click', function(){

    // geting the properties
    $.ajax({
        method:'POST',
        url: url,
        data: {body: $('#post-body').val(), postId: postId , _token: token}
    })

    // after done
    .done(function(msg) {
        $(postBodyElement).text(msg['new_body']);
        $('#edit-modal').modal('hide')
    });
});

路由文件

<script>
    var token = '{{ Session::token() }}';
    var url = '{{ route('edit') }}';
</script>

我的控制器文件

Route::post('/edit', [
    'uses'=>'PostController@postEditPost',
    'as'=>'edit'
]);

2 个答案:

答案 0 :(得分:0)

您将ajax请求发送到服务器,但在控制器中却不这样接受。 试试这个:

    // updating the post content
    $post->body = $request['body'];
    $post->update();

    if(request()->expectsJson()){
      return response()->json(['new_body' => $post->body], 200);
      }

     //here you can return to whereever you need it if its not ajax
    return redirect('/');

答案 1 :(得分:0)

由于VerifyCsrfToken中间件,您必须为每个CSRF请求提供post, put, delete令牌。

head标签内添加元标签

<meta name="csrf-token" content="{{ csrf_token() }}">

然后在您的ajax请求中使用它

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

请参见X-CSRF-TOKEN