2016-09-19 4 views
0

아약스로 양식 업데이트를 진행 중입니다. 그것은 아약스에서 GET 메서드를 사용할 때 잘 작동하지만 POST 메서드를 사용할 때 허용되지 않는 오류 405 메서드를 throw합니다. 나는 이것을 Localhost에서 테스트하고있다. 이전에 localhost에서이 작업을 수행했으며 정상적으로 작동했습니다. 그리고 그런데 나는 이것을 위해 Laravel 5.2를 사용하고 있습니다.jQuery .ajax() POST 요청이 405 (메서드가 허용되지 않음)를 throw하지만 GET이 발생하지 않습니다.

여기 내 아약스 코드입니다. 아약스 기능과 경로가 GET으로 변경되어 내부의 방법은, 그것은 인쇄 할 때 다음

$('#update-modal').on('click',function(){ 

$.ajax({ 

    method : "POST", 
    url : updateURL, 
    data : { client_id : $('#client_id').val(), 
      client_name : $('#client_name').val(), 
      client_business : $('#client_business').val(), 
      client_ref : $('#client_ref').val(), 
      gmail_mail : $('#gmail_mail').val(), 
      gmail_pass : $('#gmail_pass').val(), 
      client_dob : $('#client_dob').val(), 
      client_addr : $('#client_addr').val(), 
      client_no1 : $('#client_no1').val(), 
      client_no2 : $('#client_no2').val(), 
      domain_name : $('#domain_name').val(), 
      domain_p_date : $('#domain_p_date').val(), 
      domain_reg : $('#domain_reg').val(), 
      domain_ex_date : $('#domain_ex_date').val(), 
      domain_acc_email : $('#domain_acc_email').val(), 
      domain_acc_pass : $('#domain_acc_pass').val()}, 
      _token : token 

}) 
.done(function(msg){ 

    console.log(msg['message']); 

}); 
}); 

내 스크립트가보기 여기

 <script> 
     var updateURL = '{{ route('updateDomain') }}'; 
     var token = '{{Session::token()}}'; 
     </script> 

내부에 사용되는 내 경로

Route::post('/updateDomainModal' ,function(\Illuminate\Http\Request $request){  
    return response()->json(['message'=> $request['client_name']]); 
})->name('updateDomain'); 

입니다 클라이언트의 콘솔에 전달 된 이름 그러나 POST 메서드로 동일한 작업을 수행하면 오류가 발생합니다. 오류 정보입니다.

jquery.min.js:2 GET http://localhost:8000/updateDomainModal?client_id=4&client_name=ABCD&client…2+15%3A01%3A40&domain_acc_email=abc123%40gmail.com&domain_acc_pass=123456 405 (Method Not Allowed) 
+0

post 메서드를 사용하면 쿼리 매개 변수 대신 페이로드로 데이터를 보내야한다고 생각합니다. –

+0

사용 유형 : "POST"대신에 "POST" –

+0

@Mir''type''은''method''의 별칭입니다 – mdziekon

답변

0

사용 유형 "POST '

$.ajax({ 

     type : 'POST', 
     url : updateURL, 
     data : { client_id : $('#client_id').val(), 
       client_name : $('#client_name').val(), 
       client_business : $('#client_business').val(), 
       client_ref : $('#client_ref').val(), 
       gmail_mail : $('#gmail_mail').val(), 
       gmail_pass : $('#gmail_pass').val(), 
       client_dob : $('#client_dob').val(), 
       client_addr : $('#client_addr').val(), 
       client_no1 : $('#client_no1').val(), 
       client_no2 : $('#client_no2').val(), 
       domain_name : $('#domain_name').val(), 
       domain_p_date : $('#domain_p_date').val(), 
       domain_reg : $('#domain_reg').val(), 
       domain_ex_date : $('#domain_ex_date').val(), 
       domain_acc_email : $('#domain_acc_email').val(), 
       domain_acc_pass : $('#domain_acc_pass').val()}, 
       _token : token 

    }); 

당신이 domain_acc_pass로 시작하는 라인 형태 당신이 잘못 사용하는

$("#form-name").submit(function(ev) { 
    ev.preventDefault(); 
    var postData = $(this).serializeArray(); 
    var formURL = $(this).attr("action"); 
    $.ajax({ 
    url: formURL,  
    type: 'POST', 
    data: postData, 
    success: function(data, textStatus, jqXHR) 
    { 
     location.reload();  
    }, 
    error: function(jqXHR, textStatus, errorThrown) 
    { 
     consonle.log("error"); 
    } 
    }); 
}); 
+0

메소드에서 유형을 변경하면 내부 서버 오류가 발생합니다. –

+0

이것은 올바른 html 형식입니다. – Komal

0

}를 제출합니다. 토큰 값을 할당 한 후에 '}'를 사용해야합니다. 이제 토큰이 대상으로 전송되지 않습니다. 이는 필수입니다.

관련 문제