Laravel Route Post不允许

时间:2015-12-23 02:09:33

标签: php laravel

我试图在laravel中创建路线帖,我使用" get"它工作正常,但当我使用" post","删除"等不能正常工作它返回错误500(内部服务器错误)。

有我的路线代码

    Route::post('Register' ,function(){
    return "Hello World";
});

我正在使用Google Chrome浏览器和#34;高级REST客户端"执行一个" post",这给了我那些信息

Request headers 
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36
Origin: chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo
Content-Type: application/json 
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: pt-PT,pt;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: XSRF-TOKEN=


Response headers 
Host: localhost:60967
Connection: close
X-Powered-By: PHP/5.5.12
Cache-Control: no-cache, private 
date: Wed, 23 Dec 2015 01:51:29 GMT
Content-type: text/html

我搜索了几个小时,但我无法找到解决方案。

2 个答案:

答案 0 :(得分:4)

您的XSRF令牌丢失了。默认情况下,新Laravel应用程序中的所有路由都启用了CSRF保护。

您需要通过设置_token将有效令牌添加到POST请求标头或POST数据本身。

如果您只需要测试POST路由本身,您可以暂时禁用CSRF中间件,或根据具体情况应用它。

要停用
应用程序/ HTTP / Kernel.php

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        //\App\Http\Middleware\VerifyCsrfToken::class, //Comment this out
    ],
    'api' => [
        'throttle:60,1',
    ],
];
/**
 * The application's route middleware.
 *
 * These middleware may be assigned to groups or used individually.
 *
 * @var array
 */
protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
];

启用路由中间件
应用程序/ HTTP / Kernel.php

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    ],
    'api' => [
        'throttle:60,1',
    ],
];
/**
 * The application's route middleware.
 *
 * These middleware may be assigned to groups or used individually.
 *
 * @var array
 */
protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'csrf' => \App\Http\Middleware\VerifyCsrfToken::class, //Move it here
];

答案 1 :(得分:1)

  1. 您是否尝试过dump-autoload

    composer dump-autoload
    
  2. 您检查过路线是否已列出?

    php artisan route:list
    
  3. 你实际上是在使用帖子(使用表格或像POSTman这样的应用程序)