2017-12-14 2 views
0

나는 laravel에 양식이 있습니다.왜 메소드가 http 예외를 허용하지 않습니까?

아약스 게시물 요청을 사용하여 서버에 데이터를 보내려고합니다.

오류가 발생합니다. 왜 그런지 몰라?

My view source url is : http://localhost/lily/public/search 

(1/1) MethodNotAllowedHttpException RouteCollection.php에

(라인 251)에서 RouteCollection-

> methodNotAllowed (배열 ('HEAD를'GET ')) RouteCollection.php에

(라인 238)

,
<!DOCTYPE html> 
<html> 
    <head> 
     <title></title> 
     <script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" 
     crossorigin="anonymous"></script> 
    </head> 
    <body> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $("#submit").submit(function(){ 
        var name = $("#name").val(); 
        console.log(name); 
        $.ajax({ 
         type: "POST", 
         url : "{{url('/search')}}", 
         data : name , 
         success : function(data) 
         { 
          console.log(data) 
         }, 

         error : function(error) 
         { 
          console.log(error) 
         } 
        }); 
       }); 
      }); 
     </script> 

     <div class="col-md-6 offset-3"> 
      <form id="submit" method="POST"> 
       <input type="name" name="name" id="name"> 
       <button type="submit" class="btn btn-success">search</button> 
      </form> 
     </div> 
    </body> 
</html> 

Route::post('/search/{name}', '[email protected]in'); 

public function in() { 
    return json("fdfdfdfdfdf"); 
} 
+0

사용중인 METHOD에 대한 경로가 존재합니까? POST, PUT, DELETE 등? 또한 CSRF 보호 기능을 사용할 수 있습니까? 토큰을 통과해야합니다. https://laravel.com/docs/5.5/csrf#csrf-x-csrf-token – Mike

+0

생성 된 양식 작업의 실제 내용은 무엇입니까? – Amarnasan

+0

그러면 TokenMismatchException이 발생합니다. – Bugfixer

답변

1

/search/매개 변수에 대한 경로를 정의했지만 조치는 '/ search'입니다.

경로에서 쓸데없는 {이름} 부분을 제거하십시오. 또는

+0

아직 작동하지 않음 !!!!!!!!!! –

+0

보기에서 컨트롤러로 간단한 작업 예제 plz를 줄 수 있습니까? –

+1

생성 된 html 코드를 보여 주시겠습니까? – Amarnasan

0

{? 이름}과 그것을 선택하게하거나 {name}을 제거하기 위해 경로 정의를 변경하거나 {name?} 선택 후 입력하여 data

$(document).ready(function() { 

    $("#submit").submit(function() { 

     e.preventDefault(); // Prevent the Default Form Submission 
     var name = $("#name").val(); 
     console.log(name); 

     $.ajax({ 
      type: "POST", 
      url: "{{ url('/search') }}", 
      data: { 
       name: name, 
       _token: "{{ csrf_token() }}" 
      }, 
      success: function(data) { 
       console.log(data) 
      }, 
      error: function(error) { 
       console.log(error) 
      } 
     }); 
    }); 

}); 

을 변경 한 후, 요청과 함께 토큰에 따라 CSRF 전달 당신이 숨겨진 유형으로 CSRF에게 토큰 값을 추가하지 않았기 때문에 형식은 형식

<input type="text" name="name" id="name"> 
+0

보기에서 컨트롤러로 간단한 작업 예제 plz를 줄 수 있습니까? –

+0

@MirthfulNahid 업데이트 된 코드를 확인하십시오. – linktoahref

1

text 대신 name해야한다.

양식에 CSRF 숨김 입력을 추가해야합니다.

<input type="hidden" name="_token" value="{{ csrf_token() }}" /> 
관련 문제