Different Datatables behaviour with https

Different Datatables behaviour with https

oscarbootoscarboot Posts: 2Questions: 1Answers: 0

My Datatables which is integrated in a Laravel view with an ajax file work perfectly on my local and remote server with http. The largest Datatable has 32 columns.

However as soon as I enable ssl with a Letsencrypt certficate on my remote server, the Datatable doesn't show any rows anymore. The headers, buttons, pagination and search functions are visible, rows are not.No error message appear, just a very short processing message.

When debugging, I found out everything works fine up to 23 columns. As soon as I define a 24th column, the rows do not show anymore.

Anyone that has such problem? Any idea what to do?

This question has an accepted answers - jump to answer

Answers

  • kthorngrenkthorngren Posts: 21,147Questions: 26Answers: 4,918
    edited September 2019 Answer ✓

    The place to start is to see what the response is by using the browser's developer tools. This technote provides steps. If the response is empty then you will need to look at the server to find out why.

    My guess is that you are using server side processing and sending an HTTP GET, the default with ajax. It could be that this is creating a longer URL than the server supports. You can change to use HTTP POST, here is an example:
    https://datatables.net/examples/server_side/post.html

    Thats just a guess without having your config information. If this doesn't help then we will need more info. The best would be a link to your page so we can take a look.

    If not then post your Datatables init code and the response you get for 23 columns and 32 columns. More info may be needed to help though

    Kevin

  • oscarbootoscarboot Posts: 2Questions: 1Answers: 0

    @kthorngren:
    Changing the HTTP GET into HTTP POST works after adding CSRF token, as required by Laravel.

    My Ajax call in DataTable:

    ajax: {
         "url": '{{ url('risksList') }}' + '?_token=' + '{{ csrf_token() }}',
         "type": "POST" 
    },
    

    And the route in Laravel:

    Route::post('/risksList', 'RisksController@risksList');
    

    You saved my project, thanks!

This discussion has been closed.