Я занимаюсь разработкой веб-приложения на Laravel 5.4.У меня есть контактная форма, которая отправляется через Ajax.Все отлично работает на моем локальном компьютере, но когда я тестирую его на своем iphone, я получаю сообщение об ошибке «Формат неверен», когда я набираю сообщение с апострофом (т. Е. Как дела?) В поле темы или в поле сообщения,Если я набираю точно такой же текст на своем локальном компьютере, он проходит проверку.Я пробовал всех остальных сносных персонажей, а все остальное работает отлично.Проблема вызвана только апострофом.
Вот мой HTML:
<form id="contact_form" class="form-horizontal form-simple" method="POST" action="contact">
{{ csrf_field() }}
<label>Email</label>
<input type="email" class="form-control form-control-lg input-lg" id="email" placeholder="Email" name="email">
<label>Subject</label>
<input type="text" class="form-control form-control-lg input-lg" id="subject" placeholder="Subject" name="subject">
<label>Message</label>
<textarea name="message" class="form-control form-control-lg input-lg" placeholder="Your Message" id="message"></textarea>
<div id="contact_errors"></div>
<input id="contact_button" type="submit" value="Submit" class="btn btn-main btn-lg float-xs-right">
</form>
Вот мой js-файл:
$(document).ready(function(){
$('#contact_button').click(function(e){
$('#loading').removeClass('hidden').show(0);
e.preventDefault();
$.ajax({
url: 'contact',
type: "post",
data: $("#contact_form").serialize(),
dataType: 'JSON',
success: function (data) {
console.log(data);
window.location.href = APP_URL+"/";
},
error: function(data) {
$('#loading').delay(1000).hide(0);
console.log(data);
if( data.status === 422 ) {
$errors = data.responseJSON;
errorsHtml =
'<div class="alert alert-warning" role="alert"><h5>You Have Errors On The Form</h5><ul>';
$.each( $errors, function( key, value ) {
errorsHtml += '<li>' + value[0] + '</li>';
});
errorsHtml += '</ul></div>';
$( '#contact_errors' ).show().html( errorsHtml );
}
}
});
});
});
А вот мой метод контроллера:
public function store(Request $request) {
$this->validate($request, [
'email' => 'required|email',
'subject' => 'required|regex:/^[a-zA-Z0-9\s\h\p{P} ]*$/',
'message' => 'required|regex:/^[a-zA-Z0-9\s\h\p{P} ]*$/',
]);
$email = request('email');
$subject = request('subject');
$message = request('message');
$message = Message::create(compact('email', 'subject', 'message'));
session()->flash('success', "Thanks, your message has been sent. We'll get back to you as soon as we can.");
return response()->json('success');
}
Любые идеи о том, почему это происходит, будут высоко оценены.
Спасибо