Laravel 5.1 : CSRF 保护和回显提交的表单值
Laravel 5.1 : CSRF protection and echoing submitted form values
我正在尝试使用 jQuery 回显输入的表单值,但在单击提交时出现 POST http://localhost:8000/settings/generalsettings/changedata 500 (Internal Server Error)
错误。我正在使用 Laravel 5.1.
我的代码中缺少什么?
这是我的 routes.php
Route::post('settings/generalsettings/changedata', 'UserSettingsController@changeData');
UserSettingsController.php
namespace App\Http\Controllers;
use App\User;
use App\Http\Controllers\Controller;
class UserSettingsController extends Controller
{
public function changeData()
{
$variable = Input::post('name99');
print_r($variable);
}
}
generalSettings.blade.php
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<link rel="stylesheet" href=""/>
<meta name="csrf-token" content="{{ csrf_token() }}">
</head>
<body>
<input id="name" type="text" placeholder="Enter your name">
<input type="submit" id="sub">
<div id="result"></div>
<script src="/js/jquery-2.1.4.js"></script>
<script type="text/javascript">
$(document).ready(function () {
// set up jQuery with the CSRF token, or else post routes will fail
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
}); // handlers
$("#sub").click(function (y) {
y.preventDefault();
var user_name = $('#name').val();
$.post(
"/settings/generalsettings/changedata",
{
name99: user_name
},
function (data) {
$('#result').hide().html(data).fadeIn(2000);
});
});
});
</script>
</body>
</html>
在控制器文件的顶部添加 use Input
尝试使用 get
而不是使用 post
在控制器中接收 ajax 数据。
$variable = Input::get('name99');
我在 UserSettingsController
class 的顶部添加了 use Input
,问题解决了。
我正在尝试使用 jQuery 回显输入的表单值,但在单击提交时出现 POST http://localhost:8000/settings/generalsettings/changedata 500 (Internal Server Error)
错误。我正在使用 Laravel 5.1.
我的代码中缺少什么?
这是我的 routes.php
Route::post('settings/generalsettings/changedata', 'UserSettingsController@changeData');
UserSettingsController.php
namespace App\Http\Controllers;
use App\User;
use App\Http\Controllers\Controller;
class UserSettingsController extends Controller
{
public function changeData()
{
$variable = Input::post('name99');
print_r($variable);
}
}
generalSettings.blade.php
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<link rel="stylesheet" href=""/>
<meta name="csrf-token" content="{{ csrf_token() }}">
</head>
<body>
<input id="name" type="text" placeholder="Enter your name">
<input type="submit" id="sub">
<div id="result"></div>
<script src="/js/jquery-2.1.4.js"></script>
<script type="text/javascript">
$(document).ready(function () {
// set up jQuery with the CSRF token, or else post routes will fail
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
}); // handlers
$("#sub").click(function (y) {
y.preventDefault();
var user_name = $('#name').val();
$.post(
"/settings/generalsettings/changedata",
{
name99: user_name
},
function (data) {
$('#result').hide().html(data).fadeIn(2000);
});
});
});
</script>
</body>
</html>
在控制器文件的顶部添加 use Input
尝试使用 get
而不是使用 post
在控制器中接收 ajax 数据。
$variable = Input::get('name99');
我在 UserSettingsController
class 的顶部添加了 use Input
,问题解决了。