Laravel中Ajax请求无响应,疑似MethodNotAllowedHttpException问题
问题排查求助
我的Web应用运行在Linux RHEL 7.9系统上,基于Laravel 5.0.33框架、PHP 5.4.16开发,通过Javascript+Ajax从MySQL拉取数据。之前一直运行正常,两天前突然出现下载操作无限期挂起的情况,期间没有修改任何代码。
已做的排查工作
前端Ajax请求代码
应用发起的Ajax请求代码如下:
var url = APP_URL+'/datatables/'+table_id+'/query'; $.ajax(url, { method: 'POST', data: {"query": query_str}, dataType: 'json', }).done(function (data) { // 已注释的业务逻辑代码 });
直接访问URL的错误反馈
将生成的URL直接粘贴到浏览器访问时,收到错误提示:
MethodNotAllowedHttpException in RouteCollection.php line 207.
对应的堆栈跟踪信息:
in RouteCollection.php line 207 at RouteCollection->methodNotAllowed(array('POST')) in RouteCollection.php line 194 at RouteCollection->getRouteForMethods(object(Request), array('POST')) in RouteCollection.php line 142 at RouteCollection->match(object(Request)) in Router.php line 729 at Router->findRoute(object(Request)) in Router.php line 652 at Router->dispatchToRoute(object(Request)) in Router.php line 628 at Router->dispatch(object(Request)) in Kernel.php line 214 at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfTokenWithExcludedRoutes.php line 32 at VerifyCsrfTokenWithExcludedRoutes->handle(object(Request), object(Closure)) in Pipeline.php line 125 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 55 at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 125 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 61 at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 125 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 36 at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 125 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 40 at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 125 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42 at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 125 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101 at Pipeline->then(object(Closure)) in Kernel.php line 115 at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 84 at Kernel->handle(object(Request)) in index.php line 53
路由配置验证
执行artisan route:list命令查看路由列表,显示该路由明确支持POST方法:
POST | datatables/{datatables}/query | query.create | App\Http\Controllers\Datazoo\DatatableQueryDatazooController@query
请问这可能是什么原因导致的?
内容的提问来源于stack exchange,提问作者Marina Frants
相关产品推荐
相关产品推荐

