Framework: request->expectsJson() does not work correctly in old browser

Created on 29 Oct 2018  路  6Comments  路  Source: laravel/framework

  • Laravel Version: 5.7.*
  • PHP Version: 7.2.*
  • Database Driver & Version:

Description:

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

Most helpful comment

Could you tell us the headers of the issued http request?

All 6 comments

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.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

kerbylav picture kerbylav  路  3Comments

YannPl picture YannPl  路  3Comments

digirew picture digirew  路  3Comments

felixsanz picture felixsanz  路  3Comments

Fuzzyma picture Fuzzyma  路  3Comments