我有一个选择框。我通过选择框重定向客户端。当他们选择时,他们会重定向。
在我开始使用laravel编写代码之前,我的系统正在运行。拉拉维尔之后,我对此事有疑问。
$('#parent_products').change(function(){
productid = $(this).val();
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: 'POST',
url: '{{ route('redirectVariant') }}',
data: {
productid : productid,
_method : 'PATCH'
},
error: function(jqXHR, exception) {
alert('Hata \n' + jqXHR.responseText);
},
success: function (data) {
window.location.replace(data);
}
});
});
我收到此错误。
RouteCollection.php第219行中的MethodNotAllowedHttpException:
这是我的路线
Route::group(['prefix' => 'ajax'], function () {
Route::post('product/redirect_variant', [
'uses' =>'AjaxController@redirectVariant',
'as' => 'redirectVariant',
]);
});
这是我的控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class AjaxController extends Controller
{
public function redirectVariant(Request $request){
dd(Request::all());
}
}
有什么问题?
答案 0 :(得分:0)
您的Javascript正在欺骗PATCH请求,而您的路由已设置为POST。
你可以尝试:
Route::group(['prefix' => 'ajax'], function () {
Route::patch('product/redirect_variant', [
'uses' =>'AjaxController@redirectVariant',
'as' => 'redirectVariant',
]);
});