2016-09-19 248 views
0

我正在使用ajax进行表单更新。它工作正常,当我在Ajax中使用GET方法,但它会抛出错误405方法不允许当我使用Post方法。我在Localhost上测试这个。我已经在localhost中完成了它,它工作正常。顺便说一下,我为此使用了Laravel 5.2。jQuery .ajax()POST请求抛出405(方法不允许)但GET不

这里是我的ajax代码。

$('#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'); 

当AJAX功能和路线发生改变进去的方法,它打印的客户名称在控制台中传递但是,当使用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方法你需要发送数据作为有效负载而不是查询参数。在发送前对数据尝试使用'JSON.Stringify()' –

+0

使用类型:“POST”而不是方法:“POST” –

+0

@Mir''type''只是方法的别名 – 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

您错误地使用}。您应该在分配令牌值后使用该'}'。现在,令牌不会发送到需要的目标。

相关问题