【发布时间】:2019-03-25 06:59:26
【问题描述】:
该代码在我的本地开发环境中运行良好,但在我将其上传到服务器时会出现405 method not allowed 异常。 this question 和 this question 的解决方案对我不起作用。
这是控制器。
public function DeleteMultipleProjects(Request $request){
$json = $request->projectsToDelete;
$to_delete = collect([]);
$projects = json_decode($json);
foreach ($projects as $project) {
$to_delete->push($project->id);
}
Project::destroy($to_delete);
}
这是路由文件中的相应条目。
Route::post('/ajax/dashboard/delete-projects', 'ProjectController@DeleteMultipleProjects');
这是对 URL 的 AJAX 调用。
$.ajax({
url: '/ajax/dashboard/delete-projects',
method: 'POST',
data: {
projectsToDelete: JSON.stringify(vThis.selectedProjects),
},
complete: function(){
vThis.refreshProjects();
}
});
这是示例测试用例的数据。
[{"id":140,"name":"a","updated_at":"Sun, Oct 21, 2018 4:31 AM","selected":true,"selectHovering":false},{"id":139,"name":"New Project","updated_at":"Sun, Oct 21, 2018 4:31 AM","selected":true,"selectHovering":false}]
我怎样才能克服这个错误,为什么这只发生在生产环境中?
编辑值得注意的是,我在整个应用程序中对路由进行了其他 AJAX 调用,它们工作正常。
【问题讨论】:
-
请求是否直接发送到应用服务器?
-
什么意思? AJAX 请求直接发送到服务器,是的。值得注意的是,我在整个应用程序中对路由进行了其他 AJAX 调用,它们运行良好。
-
我在澄清你的环境。通常,在企业环境中,请求通过分层架构进行路由。
-
哦是的,不,这里不是这样。
-
请从 devtools 发布请求信息。
标签: javascript ajax laravel laravel-5