gpt4 book ai didi

jquery - Laravel ajax 输出 json 错误消息

转载 作者:行者123 更新时间:2023-12-01 07:52:22 25 4
gpt4 key购买 nike

您好,我正在使用 Laravel 和 jQuery Ajax 提交联系表单。这非常有效,我可以轻松地捕获成功消息作为字符串。但是我的错误消息是作为数组传递的,所以我猜它的工作方式有所不同,因为错误消息没有被输出。但我可以在我的控制台中看到它已按如下方式传回:

errors: {name: ["The name field is required."], email: ["The email field is required."],…}
email: ["The email field is required."]
message: ["The message field is required."]
name: ["The name field is required."]
success: false

我正在尝试将这些错误消息附加到我的 html 中:

error: function (XMLHttpRequest, json, errors) {
$( "#errors" ).append(json.message );

}

我的 Controller 将其传递给 ajax,如下所示:

 return Response::json(array('success' => false,
'errors' => $validator->getMessageBag()->toArray()

但是这没有效果。我错过了什么吗?我的代码如下。希望有人能帮忙。提前致谢。

public function getContactUsForm()
{

if(Request::ajax()){

$data = Input::all();
$rules = array(
'name' => 'required',
'email' => 'required',
'message' => 'required');
// catch validation and pass back json reponse if not filled in correctly.
$validator = Validator::make ($data, $rules);
if ($validator -> passes()){
//Send email using Laravel send function
Mail::send('emails.contactform', $data, function($message) use ($data)
{
$message->from(Config::get('mail.from')['address'], Config::get('mail.from')['name']);
$message->to('mail@gmail.com', 'Test')->subject(' Contact Form');

});
return Response::json(array(
'success' => true,
'message' => 'Thank you, your message has been sent.'

));
} // end if start else
else
{
return Response::json(array(
'success' => false,
'errors' => $validator->getMessageBag()->toArray()

));
}

}
else {
return 'NOT AN AJAX RESPONSE...';
}

}

我的ajax调用如下:

$('#submit-contact').on('submit', function(e) {

e.preventDefault();

var name = $('#name').val();
var message = $('#message').val();
var email = $('#email').val();

$.ajax({
url: '/contact_request',
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
},
data: {name:name, message:message, email:email},
type: 'POST',
success: function (json) {
// clear inputs
$('#name,#message,#email').val('');
// append success message
$( "#success" ).append(json.message );

},
error: function (jqXHR, json) {
$( "#errors" ).append(json.errors );

}
});

});

最佳答案

您可以迭代 json.errors 对象属性来输出每个错误消息值:

error: function (jqXHR, json) {
for (var error in json.errors) {
$('#errors').append(json.errors[error] + '<br>');
}
}

关于jquery - Laravel ajax 输出 json 错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28225885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com