Problem z kasowaniem plików w Laravel i jquery

Odpowiedz Nowy wątek
2019-05-26 15:07
0

Witajcie,
Mam taki kod:


    <ul>
       <li class="file-id-46">- <a
          href="http://test.test/upload/other/1c186a1229c8c502c9bae2794b52a6f0.pdf"
          target="_blank">upload/other/1c186a1229c8c502c9bae2794b52a6f0.pdf</a>
          <a href="#" class="red removeThisFile"
             id="46">[delete file]</a>
       </li>
       <li class="file-id-47">- <a
          href="http://test.test/upload/other/65b13b47f09fc785d901e43e7864bab2.pdf"
          target="_blank">upload/other/65b13b47f09fc785d901e43e7864bab2.pdf</a>
          <a href="#" class="red removeThisFile"
             id="47">[delete file]</a>
       </li>
       <li class="file-id-48">- <a
          href="http://test.test/upload/other/19846324513791f79013fb8e5a7854d8.pdf"
          target="_blank">upload/other/19846324513791f79013fb8e5a7854d8.pdf</a>
          <a href="#" class="red removeThisFile"
             id="48">[delete file]</a>
       </li>
       <li class="file-id-49">- <a
          href="http://test.test/upload/other/fca69b7c02ae223cd167202368d3a555.pdf"
          target="_blank">upload/other/fca69b7c02ae223cd167202368d3a555.pdf</a>
          <a href="#" class="red removeThisFile"
             id="49">[delete file]</a>
       </li>
       <li class="file-id-50">- <a
          href="http://test.test/upload/other/2a1f88cd9f223a423a29594be3d8ce7a.pdf"
          target="_blank">upload/other/2a1f88cd9f223a423a29594be3d8ce7a.pdf</a>
          <a href="#" class="red removeThisFile"
             id="50">[delete file]</a>
       </li>
       <li class="file-id-51">- <a
          href="http://test.test/upload/other/dbe585a9716bd417437be6b0d5695a6a.pdf"
          target="_blank">upload/other/dbe585a9716bd417437be6b0d5695a6a.pdf</a>
          <a href="#" class="red removeThisFile"
             id="51">[delete file]</a>
       </li>
       <li class="file-id-52">- <a
          href="http://test.test/upload/other/585b8aa2cfd6a871eb3ed0e1c6d5e2b9.pdf"
          target="_blank">upload/other/585b8aa2cfd6a871eb3ed0e1c6d5e2b9.pdf</a>
          <a href="#" class="red removeThisFile"
             id="52">[delete file]</a>
       </li>
    </ul>

    $(".removeThisFile").click(function () {
                        var id = $(this).attr("id");
                        $('.file-id-' + id).hide();
                        $.ajax({
                            url: 'http://test.test/psCMS/removeOtherFile?id=52',
                            type: 'get',
                            dataType: 'json',
                            _token: $('meta[name="_token"]').attr('content'),
                            headers: {
                                'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
                            },
                            cache: false,
                            success: function (response) {
                                $(this).hide();
                            }
                        });

Generalnie jquery poprawnie wysyła zapytanie do php (Laravel).
Problem występuje w kasowaniu plików. Pierwszy plik zostaje usunięty poprawnie. Usnięcie kolejnego pliki nie udaje się.
Podejrzewam iż mam nieważny token X-CSRF-TOKEN po usunięciu poprzedniego pliku.

W jaki sposób mogę naprawić ten problem?

Pozostało 580 znaków

2019-05-26 15:20
0

To sprawdź czemu ;) Jaki dostajesz response? W przypadku braku CSRF powinieneś dostać (chyba) kod 40x lub 50x, nie pamiętam, co laravel tam zwraca. Jak wygląda backend?

Pozostało 580 znaków

2019-05-26 15:24
0

Właśnie nie wiem dlaczego tak się dzieje. Wydaje mi się że próbowałem już wszystkiego :( Klikam pierwszy plik - kasuje poprawnie.
2,3,4,5 - wysyła request - ale pliku nie kasuje. W Firebugu wszystkie requesty mają stan 200 i nie zwracają błędu. Po przeładowaniu strony znowu mogę usunąć znowu tylko jeden plik.
Jeśli znowu przeładuję stronę - to ponownie będę mógł skasować jeden plik. DLatego wydaje mi się że to może kwestia tego tokena?

Pozostało 580 znaków

2019-05-26 18:55
0

Jakby to była kwestia tokena to byś dostał komunikat na temat tokena, a nie 200. Jeszcze będąc przy samym tokenie, to weź poszukaj jakiegoś ładniejszego rozwiązania jak globalny token dla ajax, bo bez sensu 2 razy deklarujesz ten token ( _token to nawet nigdy nie widziałem, że był taki parametr w jquery ajax).

Skoro to nie token to debuguj, zamiast 200 zwracaj konkretne informacje co i gdzie i czy zostało usunięte.

Pozostało 580 znaków

2019-05-27 07:39
0

url: 'http://test.test/psCMS/removeOtherFile?id=52',
Zawsze kasuje ci plik o podanym ID. Użyj zmiennej id.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0