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

웹 애플리케이션에서 데이터를 저장, 수정, 삭제하는 액션에 대한 응답을 redirect로 해야하나요 response로 해야하나요?

클라이언트에서 ajax를 사용할 경우 서버에서는 return response([], 200); 이런 식으로 응답이 가능한데,

만약 페이지를 이동하면서 데이터를 전송할 경우엔 return redirect(...); 이런 식으로 응답해야할 것 같더라구요...


일반적으로 어떻게 작성하시나요?

    CommentAdd your comment...

    1 answer

    1.  
      1
      0
      -1

      일반적으로 Redirect 합니다.

      1. 김영우

        답변 매우 감사합니다!

        그렇다면, 서버에서 예외가 발생했다면 status code와 함께 back() 함수를 실행하는건가요!?

      2. 김영우

        401 status code 경우는 back() 함수와 줄 수가 없는 것 같아요 ㅠㅠ

        게다가 laravel validation error handling 조차 response json으로 주기때문에

        클라이언트에서 냅다 submit을 하면 골치아픈 일이 발생하네요...


        저는 보통 ajax로...


        function submit(form) {
          var type = form.dataset.type;
          var url = form.dataset.url;
          var data = new FormData(form);

          $.ajax({
            type: "post",
            url: url,
            data: data,
            processData: false,
            contentType: false,
            statusCode: {
              200: function() {

                // handling...
              },
              401: function() {

                // handling...
              },
              422: function() {

                // handling...
              },
              423: function() {

                // handling...
              },
              500: function() {

                // handling...
              }
            }
          });
        }


        이런식으로 status code별로 핸들링하고 있었는데... 어떻게 해야맞는지 혼란스럽습니다...



      3. 김주원

        예 동의합니다. HTML 응답일 때는 401을 줄 수 있는 방법이 없을 것 같네요. 이렇게 하면 되지 않을까요? 

        if (request()->ajax() || request()->wantsJson()) {
        	return response()->json(['...'], 401);
        }
        
        
        return redirect(route('your-named-route'));
      4. 김영우

        답변 감사합니다. ㅜ ㅜ

        결국, 깔끔한 그리드를 위해서 ajax를 사용하기로 결정했습니다 ㅜ ㅜ

      CommentAdd your comment...