我正在使用Laravel 5.4开发一个Web应用程序。我有一个通过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');
}
任何关于为什么发生这种情况的想法都将受到赞赏。
谢谢