【发布时间】:2018-01-21 07:16:34
【问题描述】:
我是 Laravel 的新手,正在尝试通过联系表单发送电子邮件。
这是html表单:
<form onsubmit="return false" method="post" id="contact_form" name="contact-form">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="text" placeholder="Full Name" name="fullname" id="fullname" required>
<input placeholder="Email Address" required name="email" id="email">
<button id="contact_btn"data-loading-text="<i class='fa fa-circle-o-notch fa-spin'></i> Sending" >Send Your Message</button>
</form>
这是控制器:
public function contactPost(Request $request) {
$this->validate($request, [
'email'=>'required|email',
'fullname'=>'max:50',
]);
$data = array(
'email' => $request->email,
'fullname' => $request->fullname,
);
Mail::send('emails.contact', $data, function($message) use ($data){
$message->from($data['email']);
$message->to('**@gmail.com');
});
return ['success' => true,];
}
这是路线:
Route::post('contact', 'PagesController@contactPost');
这是我在 laravel.logs 上能找到的最后一个错误:
[2017-08-11 06:30:53] local.ERROR: ErrorException: Use of undefined constant csrf_token - assumed 'csrf_token' in C:\xampp\htdocs\paygizer\storage\framework\views\b9aff2e30c0efeff3b03704fbc6a957f360869cf.php:385
不管我怎么做,错误从昨天开始就没有更新,我重启了几次服务器。
这是 ajax 调用:
$('#contact_form').submit(function(e) {
e.preventDefault();
}).validate({
rules: {
fullname: {
required: true,
},
email: {
required: true,
email: true
},
},
submitHandler: function (form) {
var btn = $('#contact_btn');
btn.button('loading');
setTimeout(function() {
btn.button('reset');
}, 8000);
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
type: 'POST',
url: "{{url('contact')}}",
// data: form.serialize(),
dataType: 'json',
async: true,
data: {
fullname: $('#fullname').val(),
email: $('#email').val(),
},
success: function (json) {
$('#contact').hide();
$('#output').html(
'<i class="fa fa-check" aria-hidden="true" id="check" style="border-radius:50%;font-size:80px;text-align:center;color:#E81B00"></i><br><p class="lead" style="font-size:40px;">We have received your message!</p>'
).show();
},
error: function(data){
alert(data);
},
});
return false; // for demo
}
});
Chrome 开发工具没有错误。当我点击提交按钮加载并没有任何反应。
【问题讨论】:
标签: php jquery ajax forms laravel-5