Ajax request to server (axios with header 'X-Requested-With': 'XMLHttpRequest')
$request->expectsJson() does not work correctly in Firefox 38 browser whereas $request->ajax() works correctly.
$request->expectsJson() return false
but $request->ajax() return true
whereas in more modern browsers both return true
What is correctly/not correctly?
What is the error message?
Ajax request to server
$request->expectsJson() return false
but $request->ajax() return true
whereas in more modern browsers both return true
Could you tell us the headers of the issued http request?
old browser
request()->expectsJson()
return false
request()->ajax()
return true
(
[x-xsrf-token] => Array
(
[0] => eyJpdiI6IkQ4c2dYM2VOQ1dqTnF5SnYrUGZSWUE9PSIsInZhbHVlIjoialdTQ0p3YklaNnpqaVRBYzk3dGViXC9RR0ppdjZyWlVGMXVRbWJxQ2NaNVJQbWpjY0UrYXJVXC93VTA0a2VMYjJrIiwibWFjIjoiNzVkODZhY2M4NDA0NDk3NWJlMjVhYjA0Y2I5ZjQ3M2MxNTI5N2Q0YzYzYzgyM2U1MzM5M2U0M2ZkMTcxYTViZSJ9
)
[x-requested-with] => Array
(
[0] => XMLHttpRequest
)
[x-original-host] => Array
(
[0] => f459e9a5.ngrok.io
)
[x-forwarded-for] => Array
(
[0] => 77.90.120.15
)
[x-csrf-token] => Array
(
[0] => EThabzCSKRsdXfyI2ZKQXdCitl5k0OFmgL2ETyuP
)
[referer] => Array
(
[0] => http://f459e9a5.ngrok.io/test
)
[cookie] => Array
(
[0] => XSRF-TOKEN=eyJpdiI6IkQ4c2dYM2VOQ1dqTnF5SnYrUGZSWUE9PSIsInZhbHVlIjoialdTQ0p3YklaNnpqaVRBYzk3dGViXC9RR0ppdjZyWlVGMXVRbWJxQ2NaNVJQbWpjY0UrYXJVXC93VTA0a2VMYjJrIiwibWFjIjoiNzVkODZhY2M4NDA0NDk3NWJlMjVhYjA0Y2I5ZjQ3M2MxNTI5N2Q0YzYzYzgyM2U1MzM5M2U0M2ZkMTcxYTViZSJ9; hentoki_session=eyJpdiI6IlJ5WG5zSEVRNXdtSU1MK1lLQTJXSUE9PSIsInZhbHVlIjoiUzYyeWh3dzlpKzdhMDlDeEN1cVNyRGxvZGd3dkhEdDFNR1B6eVRqMDFHR1ZUVEFoMldlekE1V3hUcVNnNktFQiIsIm1hYyI6ImUyNDA4YzEyMTkyNzI3MzViZmM2YmEzNjJjOTc2N2IzM2Q5ZmFkMzZkMDQ4Njc5MDQxYmNkOGZiNGNmNDZhYzQifQ%3D%3D
)
[cache-control] => Array
(
[0] => max-age=0
)
[accept-language] => Array
(
[0] => en-US,en;q=0.5
)
[accept-encoding] => Array
(
[0] => gzip, deflate
)
[accept] => Array
(
[0] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
)
[user-agent] => Array
(
[0] => Mozilla/5.0 (Windows NT 10.0; rv:38.0) Gecko/20100101 Firefox/38.0
)
[host] => Array
(
[0] => f459e9a5.ngrok.io
)
[content-length] => Array
(
[0] =>
)
[content-type] => Array
(
[0] =>
)
[x-forwarded-host] => Array
(
[0] => f459e9a5.ngrok.io
)
)
normal browser
request()->expectsJson()
return true
request()->ajax()
return true
(
[x-xsrf-token] => Array
(
[0] => eyJpdiI6InRUbXd3S2pFSzBJQ2paNWwyMllLeHc9PSIsInZhbHVlIjoiajA4MkJnNnBncFRGWTZTb1E0QXZTSVwvd2JkMTZOM2hvb2lyeEJKQWpvNmdMTXd1NmhFRk92dVk5M2ZKWVwva0xzIiwibWFjIjoiYjk4NmQ2ZTQ0MmE0MTQ1NzIzZjVmNzdmYjk4YzkyMDU1OWI1ZjE0Y2ZmZjlhNjQ4NGM0MDc1NjZkN2Q2NWM1ZiJ9
)
[x-requested-with] => Array
(
[0] => XMLHttpRequest
)
[x-original-host] => Array
(
[0] => f459e9a5.ngrok.io
)
[x-forwarded-for] => Array
(
[0] => 77.90.120.15
)
[x-csrf-token] => Array
(
[0] => qfdXK1wtO8jbUB73912MnaQFnO40DZsS32o2kLQu
)
[referer] => Array
(
[0] => http://f459e9a5.ngrok.io/test
)
[pragma] => Array
(
[0] => no-cache
)
[cookie] => Array
(
[0] => XSRF-TOKEN=eyJpdiI6InRUbXd3S2pFSzBJQ2paNWwyMllLeHc9PSIsInZhbHVlIjoiajA4MkJnNnBncFRGWTZTb1E0QXZTSVwvd2JkMTZOM2hvb2lyeEJKQWpvNmdMTXd1NmhFRk92dVk5M2ZKWVwva0xzIiwibWFjIjoiYjk4NmQ2ZTQ0MmE0MTQ1NzIzZjVmNzdmYjk4YzkyMDU1OWI1ZjE0Y2ZmZjlhNjQ4NGM0MDc1NjZkN2Q2NWM1ZiJ9; hentoki_session=eyJpdiI6Ik9BVis2MW5JeGhEY0M0K0tKTkJPK3c9PSIsInZhbHVlIjoianlNVkJWZ05SdmkrZktiMWV6bTZ0YmtVZWV4UnA1cUJFcnJYVjVaSTBjR21NR3dcLzBzOGR3T1BCcWhGUmd5dXUiLCJtYWMiOiI2YjcwNWIwZTk1YWNiMWZhOTRkMzMyNmU3OTZjZDNkMTIxZTg5MWU0YmFiNjg3YzU1NzFkMWQ2ZjU3YmNkN2I0In0%3D
)
[cache-control] => Array
(
[0] => no-cache
)
[accept-language] => Array
(
[0] => en-US,en;q=0.9,ru;q=0.8,mt;q=0.7
)
[accept-encoding] => Array
(
[0] => gzip
)
[accept] => Array
(
[0] => */*
)
[user-agent] => Array
(
[0] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36
)
[host] => Array
(
[0] => f459e9a5.ngrok.io
)
[content-length] => Array
(
[0] =>
)
[content-type] => Array
(
[0] =>
)
[x-forwarded-host] => Array
(
[0] => f459e9a5.ngrok.io
)
)
expectsJson() requires the accept header to begin with */* or *. Can you override the header in axios?
Try @staudenmeir's suggestion.
Most helpful comment
Could you tell us the headers of the issued http request?