doupeng5320 2015-07-13 08:44
浏览 95
已采纳

用ajax运行Laravel 5.1 POST,得到错误。 用GET做它并且它有效

So it's my first laravel project and i can't find out what's the problem.

I searched for hours, but nothing helped.

{!! csrf_field() !!} is in my form, the _token data is sended

Route:

Route::post('/posts/create', [
    'middleware' => 'auth',
    "as" => 'post-create',
    "uses"=>'PostsController@create'
]);

Ajax:

 $.ajax({
     url:'{{route('post-create')}}',
     type:'POST',
     data:form.serialize()
 });

Return for ajax:

Remote Address:[::1]:80
Request URL:http://localhost/domain/public/posts/create
Request Method:POST
Status Code:500 Internal Server Error

TokenMismatchException in VerifyCsrfToken.php line 53:
in VerifyCsrfToken.php line 53
at VerifyCsrfToken->handle(object(Request), object(Closure))
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 54
at ShareErrorsFromSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 62
at StartSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure))
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 118
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 86
at Kernel->handle(object(Request)) in index.php line 54

And the laravel standard user register doesn't work too. When the login does (both works with post).

What did i miss?

EDIT: interesting that if i do it with a submit button it reaches the controller. So i found out the problem is coming from the controller:

$title=Input::post('title');

There is the 'use Illuminate\Support\Facades\Input;' line

EDIT2: $title=Input::post('title'); was the problem, i guess. I should use $request->input('title');

But i don't know how to use it properly, i get

Target [App\Http\Requests\Request] is not instantiable.

error if i add 'Request $request' param to the controller function.

  • 写回答

3条回答 默认 最新

  • douhao123457 2015-07-14 13:09
    关注

    In my controller i used '$title=Input::post('title');' instead of '$request->input('title');'

    I Had to make Request class, i made App\Http\Requests\PostCreateRequest.

    php artisan make:request PostCreateRequest
    

    Then in the controller

    public function create(PostCreateRequest $request){
            print $request->input('title');
    }
    

    It works :)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址