0
我試圖讓表單在Laravel項目中發送電子郵件。但是,我不斷收到500錯誤。我正在關注this教程。通過AJAX(Laravel 5.4)發送電子郵件時發生500錯誤
這是路線:
Route::post('contact', '[email protected]');
這是控制器:
public function contact(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('[email protected]');
});
}
這是包含與CSRF的HTML形式由以前的問題,注意到這樣一種觀點。
<form onsubmit="return false" method="post" id="contact_form" name="contact-form">
<input type="hidden" name="_token" value="{{ csrf_field() }}">
<input type="text" class="form-control" name="fullname" id="fullname" required>
<input class="form-control" aria-describedby='sizing-addon1' placeholder="Email Address" required name="email" id="email">
<button id="contact_btn" data-loading-text="Sending" >Send Your Message</button>
</form>
這是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);
$.ajax({
type: 'POST',
url: "{{url('contact')}}",
dataType: 'json',
async: true,
data: {
fullname: $('#fullname').val(),
email: $('#email').val(),
},
success: function (json) {
$('#contact').hide();
$('#output').html(
'<p>We have received your message!</p>'
).show();
}
});
return false;
}
});
在Chrome瀏覽器開發工具
:
無法加載資源:服務器與500 (內部服務器錯誤)的狀態迴應
日誌的最後一節是沒用的。 '#1'是你想要檢查的 –
檢查你的http服務器錯誤日誌。 – Wolen
'$ data ['subject']'__not__ exists。 –