【发布时间】:2018-11-30 09:34:30
【问题描述】:
我有一条路线
Route::post('/subscription/save','SubscriptionController@save')->name('sub.save');
它是唯一没有重复的路线,我通过 Ajax 从这段代码提交
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$('.btn-ok').click(function(){
$.ajax({
type: 'POST',
data: {
'card_type':$('#card_type').val(),
'card_number':$('#card_number').val(),
'expiry':$('#expiry').val(),
'cvv':$('#cvv').val(),
'name':$('#name').val(),
'surname':$('#surname').val(),
'address1':$('#address1').val(),
'address2':$('#address2').val(),
'province':$('#province').val(),
'city':$('#city').val(),
'country':$('#country').val(),
'box_id':$('#sub_box_id').val()
} ,
url: "{{route('sub.save')}}",
success: function(data){
console.log(data);
}
});
$('#myModal').modal('hide');
});
如果我在控制台中记录数据变量,它看起来很好。这是我的控制器功能
public function save(Request $request)
{
$Subscription=new Subscription;
return $request;
}
我尝试了退货请求,但我再次收到此 405 错误
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
No message
我做错了什么?
========================= 我已经更新了帖子,我在标题中使用 CSRF
【问题讨论】:
-
检查 csrf 令牌。也尝试“方法”而不是“类型”
-
运行
php artisan routes以确保路由已正确注册。还要检查生成的 URL 是否实际上是正确的,并且其中没有任何奇怪的转义 -
让我为你写一个答案。
-
您可以在浏览器控制台的网络选项卡中查看请求详细信息吗?
-
使用像
create这样的粗鲁操作而不是save然后Route::post('/subscription/,Scuscription@create)更好地使用资源:Route::resource('/subscriptions', 'SubscriptionsController');如果您有时间观看这两个视频以更好地设计您的 API youtube.com/watch?v=MF0jFKvS4SI vimeo.com/17785736