Laravel 5.4+;jQuery CORS请求
我有两个laravel应用程序,一个用作管理面板,另一个用作API服务器 我试图对API执行jQueryAjax Post请求,但响应的行为似乎完全奇怪 我正在使用barryvdh/laravel cors在API上启用cors。我还试图禁用它并手动添加“选项”请求,但我仍然得到相同的行为 问题似乎与飞行前请求后发出的请求有关。以下是它们的发送顺序(注意初始请求是POST):Laravel 5.4+;jQuery CORS请求,jquery,ajax,laravel,cors,Jquery,Ajax,Laravel,Cors,我有两个laravel应用程序,一个用作管理面板,另一个用作API服务器 我试图对API执行jQueryAjax Post请求,但响应的行为似乎完全奇怪 我正在使用barryvdh/laravel cors在API上启用cors。我还试图禁用它并手动添加“选项”请求,但我仍然得到相同的行为 问题似乎与飞行前请求后发出的请求有关。以下是它们的发送顺序(注意初始请求是POST): 飞行前请求(选项-工作正常) 对API端点的GET请求(不知道它为什么这样做)。它返回一个302-Found重定向回r
- 飞行前请求(选项-工作正常)
- 对API端点的GET请求(不知道它为什么这样做)。它返回一个302-Found重定向回referer(到客户端)
- 对API端点的POST请求。相同的302重定向回
- 发送请求的管理员url的选项请求(由于管理员应用程序上没有COR,因此失败)
我必须提到的是,我没有在控制器中执行任何重定向,也没有添加任何中间件来执行重定向。因此,在这种情况下,没有任何方法可以确定请求是否必须作为JSON应答,特别是$request->ajax()和$request->wantsJSON() 我修复了这个问题,通过在我的基本ApicController上重写函数buildFailedValidationResponse,使其始终返回JSON响应
protected function buildFailedValidationResponse(Request $request, array $errors)
{
return new JsonResponse($errors, 422);
}
你能看看服务器日志吗?另外,您是否已打开mod security。如果是这样的话,请查看mod sec日志。这些日志没有显示任何内容。我注意到问题是由laravel验证器引起的。但这会抛出400个错误请求。我不知道mod sec,我正在本地主机上XAMPP下运行它们。我可以检查你是否认为它是相关的。如果只是运行XAMPP,可能不相关。