我想将解锁密钥传递给使用Ajax的路由,但不允许这样做。代码为我提供了方法不允许的错误。
我看不到代码中的错误,无论是路由错误还是其他错误
<script>
$(document).ready(function(){
$('.result-container').hide();
$('.unlock-btn').on('click', function(){
$.ajax({
url: "{{route('unlock')}}",
method: 'post',
data: {
theme_id : {{$theme_id}},
key : $('.key').val(),
},
success: function(data){
console.log('success');
if(data === '0')
$('.result-container').show();
else
{
window.location = "{{route('view', ['theme_id' => $theme_id])}}";
}
}
})
});
});
</script>
答案 0 :(得分:0)
因此,您的路线是一条路线,但在ajax中,您正在发送发布请求。更改为发布。
Route::post('/unlock', 'ThemeController@unlock')->name('unlock');
并在数据中添加一个令牌,否则您将因缺少CSRF而收到419错误。
$.ajax({
url: "{{route('unlock')}}",
method: 'post',
data: {
theme_id : {{$theme_id}},
key : $('.key').val(),
"_token": "{{ csrf_token() }}",
},
success: function(data){
console.log('success');
if(data === '0')
$('.result-container').show();
else
{
window.location = "{{route('view', ['theme_id' => $theme_id])}}";
}
}
})
答案 1 :(得分:-1)
您应该尝试以下操作:
您的路线类似:
Route::post('/unlock', 'ThemeController@unlock')->name('unlock');
您的Ajax呼叫方式如下:
$.ajax({
url: "{{route('unlock')}}",
type: 'post',
data: {
theme_id : {{$theme_id}},
key : $('.key').val(),
"_token": "{{ csrf_token() }}",
},
success: function(data){
console.log('success');
if(data === '0')
$('.result-container').show();
else
{
window.location = "{{route('view', ['theme_id' => $theme_id])}}";
}
}
})