2016-07-21 4 views
0

Laravel post 메서드로 ajax를 호출하려고합니다. 하지만 MethodNotAllowedHttpException이 발생합니다. 가능한 문제 중 하나는 요청 유형이 아약스 호출과 라우트 컨트롤러에서 일치하지 않을 수 있지만 그렇지 않은 경우입니다.MethodNotAllowedHttpException : Ajax Laravel을 사용하여 POST 메서드 호출

우편 배달부를 사용하면 게시 경로가 정상적으로 작동하는지 확인할 수 있습니다. 따라서 AJAX 호출에 집중할 수있는 옵션이 남습니다.

이슈 # 1

routes.php

Route::post('/test', '[email protected]'); 

custom.js

$.ajaxSetup({ 
     headers: { 
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
     } 
}); 

하고,

$('#teacher-save-submit').click(function(){ 

    var fname = $('#first_name').val(); 
    var lname = $('#last_name').val(); 
    var email = $('#email').val(); 
    var passkey = $('#passkey').val(); 

    $.ajax(function(){   
    type:"POST", 
    url:"/test", 
    dataType: "json", 
    success:function(data){ 
     console.log("success"); 
     $('#sbt-result').html(data); 
    } 
    }); 
}); 
예기치 않은 토큰 : : 홈페이지에서 : "/ 테스트"

당신이 사람들이 당신의 경험을 공유 할 수 있다면 그것은 좋지 않을까 콘솔에서

#ISSUE # 2

, 그것은 catch되지 않은 구문 에러를 보여줍니다.

감사합니다.

수정

이것은 어떤 특정한 오류입니다.

$('#teacher-save-submit').click(function(e){ 
    e.preventDefault(); 
    //ajax call 
+0

아약스'data : { '_token': token},'의 데이터에 CSRF 토큰을 게시 해보십시오. 어디'토큰 = '{{csrf_token()}}'' –

답변

0

변경

Route::post('test', '[email protected]'); 

JS를 게시합니다 일부 GET 방법을 찾고 생각 "메타"태그를 넣으십시오 :

<meta name="csrf-token" content="{{ csrf_token() }}" /> 
+0

시간 내 주셔서 감사합니다. 시도했지만 작동하지 않았다 –

+0

어떤 오류가 발생합니까? – madalinivascu

+0

나는 일반적으로'{{action ('Controller @ method')}}'를 사용하지만, 나의 요청에 대해 URL을 지정할 때 프로젝트에서 여전히 작동했다. –

0

어쩌면 당신이 잊어 버린 기본 클릭 이벤트를

url:"{{url('test')}}", 

방지 : 나는하지 error_produced

+0

시간 내 주셔서 감사합니다. 벌써 했어. –