我有一个只能控制操作网址的表单。所以不能添加'_token'。是可以将数据传送到我的控制器
外部HTML表单主机在deference位置
<!DOCTYPE html>
<html>
<head>
<title>Test HTML</title>
</head>
<body>
<form method="post" action="http://www.mylaravelproject.com/confirm">
<input type="textbox" name="fname">
<input type="textbox" name="lname">
<input type="submit">
</form>
</body>
</html>
我的Laravel路线
Route::any('confirm','PageController@confirm');
内部控制器
public function confirm(){
return Input::all();
}
这可能吗?
由于
修改
发现我可以通过删除行(在App / Httm / Kenel.php中)
来做到这一点'App\Http\Middleware\VerifyCsrfToken',
第二个问题 但它的安全风险。我只需要删除此特定路线'confirm'上的VerifyCsrfToken。
这可能吗?
答案 0 :(得分:3)
此功能将在Laravel 5.1中开箱即用。
但是在我们等待Laravel 5.1时 - 您可以在5.0中的App\Http\Middleware\VerifyCsrfToken
文件中执行此操作:
<?php namespace App\Http\Middleware;
use Closure;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
use Illuminate\Session\TokenMismatchException;
class VerifyCsrfToken extends BaseVerifier {
protected $excludedRouteGroups = ['confirm', 'stripe'];
public function handle($request, Closure $next)
{
if ($this->isReading($request) || ($this->excludedRoutes($request)) || $this->tokensMatch($request)) {
return $this->addCookieToResponse($request, $next($request));
}
Throw new TokenMismatchException;
}
protected function excludedRoutes($request)
{
foreach($this->excludedRouteGroups as $route) {
if ($request->segment(1) === $route) {
return true;
}
}
return false;
}
}