질문을 삭제하지 말아주세요.!
 
1
0
-1

안녕하세요.

읽어주셔서 감사합니다.

책 내용대로 ajax로 type : delete로 보내 삭제를 시도하는데요

컨트롤러에 destory로 들어오지도 않습니다.. dd() 해서 찍어봐도 들어오지도 않더라구요..

그냥 리스트로 리다이렉트 되어버리는데요. . 하루종일 찾다가 못찾고 있어서.. 

ajax에서 type :delete로 보냈을때 정상적으로 값이 넘어오고 작동하는지 확인하기 위해

어디에서 dd()를 찍어야할까요...ㅠㅠ


아.. 보니 destroy 로 접근 자체가 안되는데;; 이..이건 무슨문제인지...ㅠ


from으로 

{!! csrf_field() !!}
{!! method_field('DELETE ') !!}

이걸로 보내면 접근되고 삭제까지 되는데요


AJAX로 보내면 예초에 접근을 못하는거같습니다...에휴..ㅠ

라우트리스트에도 있는데요..흠

    CommentAdd your comment...

    3 answers

    1.  
      1
      0
      -1

      CORS(JS가 자신을 내려준 서버가 아닌 다른 서버로 요청하는 경우) 이슈가 있는 개발 환경도 의심할 수 있긴한데요. 아래 예제처럼 같은 서버에서 내려준 JS 코드라면 문제없이 서버에 도달하는 게 정상입니다.


      # 터미널 #1
      $ echo "<?php var_dump($_SERVER['REQUEST_METHOD']);" > index.php
      $ php -S localhost:8000
      
      # 터미널 #2
      $ curl -X DELETE http://localhost:8000
      # string(6) "DELETE"
        CommentAdd your comment...
      1.  
        1
        0
        -1

        책 쓴지 2년이 넘어서 가물해서 찾아 봤는데, 25.5절 맞죠? 

        에러 로그도 없이 리스트 페이지로 넘어 가는 건가요? 30x 응답을 받았을테고, 에러도 나지 않았을 것 같은데요. 단서가 없어서 잘 모르겠지만, 라우트 파일에 선언한 라우팅 순서를 한번 바꿔보시겠어요. 숫자로 된 id 라우트 파라미터에 대한 정규식을 명시적으로 써 주지 않으면, 먼저 만나는 라우팅을 사용하거든요. (https://laravel.com/docs/5.6/routing#parameters-global-constraints)

        단서가 될 만한 내용이 있으면 더 남겨주세요. 위 답변으로 해결됐으면 다행이고요.

        1. 문병철

          늦은시간 답변 감사드립니다.

          제가 맥으로 책따라했던게 생각나서 맥에 만들었던거 다시 해보니 삭제가 됩니다.

          코드도 거의 같은 상태인데 .. 지금은 idc 서버에서 라라벨 올려서 하고있는데..

          삭제만 안되는거 보면.. 환경적 문제가 있을수 있을거같긴합니다. 제가 초보라 위에위에 달아주신 답변은 제가 테스트하는 방법을 모르겠습니다...ㅠ


          달아주신 답변 꼼꼼히 보면서 찾아보겠습니다.. 감사합니다!

        2. 김주원

          CORS가 아닐 수도 있지만, 혹시 CORS 문제라면 책 안에 CORS 챕터가 있습니다. 이해는 쉽게 되지만, 막상 실무에서는 숙련자들도 쉽게 해결하지 못하는 주제입니다. 아직 안 보셨다면, 긴 숨으로 찬찬히 보시길 권장합니다. 문제점을 많이 부딛히고, 스스로 해결하는 만큼 성장합니다. 화이팅입니다.

        3. 문병철

          다시 처음부터 쭉 살펴보면서 천천히 해보겠습니다. 

          격려 정말 감사합니다.


          그리고 해결은 했습니다. ㅠㅠ 

          route 에서  

          아래와 같이 받아서 넘겨주는 형태로 하니 되네요! 하핳!

          CORS는 읽어보고 관심이 생겨서 차근차근 해볼 예정입니다.

          Route::DELETE('adminboards/{code}','AdminboardsController@destory');

          커헉.. CORS가 원인인거같습니다....ㅠ

          정말 감사합니다.!

        CommentAdd your comment...
      2.  
        1
        0
        -1

        data-id 값은 정상적으로 받아서 넘기는데 말이죠...ㅠ

          CommentAdd your comment...