jQuery .ajax()POST请求抛出405(方法不允许)但GET不
我正在使用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)
使用类型“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");
}
});
});
如果我改变它从方法输入,我得到内部服务器错误 –
这是你的html表单权利 – Komal
您错误地使用}。您应该在分配令牌值后使用该'}'。现在,令牌不会发送到需要的目标。
我想用post方法你需要发送数据作为有效负载而不是查询参数。在发送前对数据尝试使用'JSON.Stringify()' –
使用类型:“POST”而不是方法:“POST” –
@Mir''type''只是方法的别名 – mdziekon