【发布时间】:2017-09-29 06:53:43
【问题描述】:
我了解您需要一个 csrf_token(),如其他问题/答案中所述,但如果我从无法获取令牌的外部服务器进行调用怎么办?
第一次在 Laravel 中构建任何东西。我只是在构建一个简单的 ajax 联系表单来熟悉它。
这是我的 JS(会有一些客户端处理,所以我需要单独的值,而不是直接序列化它)
$('#contact-form').on('submit', function(e){
e.preventDefault();
$.ajax({
type: 'POST',
url: 'forms/contact.php',
dataType: "json",
data: {
name: encodeURIComponent($("#contact-name").val()),
email: encodeURIComponent($("#contact-email").val()),
phone: encodeURIComponent($("#contact-phone").val()),
subject: encodeURIComponent($("#contact-subject").val()),
message: encodeURIComponent($("#contact-message").val())
},
success: function(data) {
alert(data.message);
}
});
});
这是我的路线(在 web.php 中)
Route::post('forms/contact.php', 'ContactController@send');
这是我的联系人控制器的主要公共功能“发送”
public function send(Request $request){
return response()->json([
'result' => true,
'message' => 'success'
]);
}
现在的主要目标是将成功的消息返回到表单。
...有人知道我将如何使用类似的方法将验证返回到表单吗?
$this->validate($request, [
'name' => 'required',
'email' => 'required|email',
'message' => 'required'
]);
对不起,我昨天拿起了 Laravel,所以我是超级菜鸟
【问题讨论】:
-
您必须在您的 post 请求中传递 csrf_token。