Я сталкиваюсь со странным поведением, не имея ни малейшего понятия, почему и как его решить. Я новичок в PHP / Laravel / Ajax, так что будьте добры, пожалуйста ^^
Моя форма блэйда:
<form method="post" action="{{ route('postContact') }}" id="id_post_contact">
@csrf
<input class="form-control" type="text" name="in_email" placeholder="contact@email.com">
[...]
<button class="btn" type="submit">Submit Question</button>
</form>
<div>
<script>
$("#id_post_contact").submit(function(e) {
e.preventDefault();
var form = $(this);
var url = form.attr('action');
var data2Send = form.serialize();
$.ajax({
type:'POST',
url:url,
headers:{
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
},
data:data2Send,
dataType:'JSON',
cache:false,
//contentType:'application/json',
success: function(data) {
alert(data.success);
}
});
});
</script>
</div>
Мой маршрут:
Route::post('/contact', 'BasisController@postContactEmail')->name('postContact');
Мой контроллер postContactEmail метод:
public function postContactEmail(Request $req){
dd(
$req->ajax(),
$req->isXmlHttpRequest(),
$req->all()
);
return response()->json(['success' => 'Got Simple Ajax Request.']);
}
И по причине, которую я игнорирую, мой $ req-> ajax () всегда возвращает false .
У меня естьпопробовал много вещей, прежде чем задавать мой первый вопрос здесь, и ничего не работает, особенно то, что этот код работает до сих пор, поэтому у меня нет никакой подсказки.
Единственное отличие состоит в том, что моя версия Laravel изменилась с 5.8 на6.2.
Я не знаю, почему моя форма не отправляет данные правильно, мой запрос заголовка:
Accept
text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding
gzip, deflate, br
Accept-Language
fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
Connection
keep-alive
Content-Length
149
Content-Type
application/x-www-form-urlencoded
Cookie
__cfduid=da74c7ad6c9ff7514e482…E_OPTINVEST_CONSENT=1; _gat=1
Host
fake-site.tld
Referer
https://fake-site.tld/
TE
Trailers
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/69.0
И мой ответ заголовка:
cf-cache-status
DYNAMIC
cf-ray
5254def1febccdd7-CDG
content-encoding
br
content-type
text/html; charset=UTF-8
date
Sun, 13 Oct 2019 22:50:09 GMT
expect-ct
max-age=604800, report-uri="ht….com/cdn-cgi/beacon/expect-ct"
server
cloudflare
vary
Accept-Encoding
X-Firefox-Spdy
h2
Спасибо взаранее за вашу помощь =)
Мишель
PS: моя версия jquery - 2.2.4 (даже с версией 3.4.1 поведение такое же, $ req->ajax () всегда будет возвращать false )