Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5.4+;jQuery CORS请求_Jquery_Ajax_Laravel_Cors - Fatal编程技术网

Laravel 5.4+;jQuery CORS请求

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

我有两个laravel应用程序,一个用作管理面板,另一个用作API服务器

我试图对API执行jQueryAjax Post请求,但响应的行为似乎完全奇怪

我正在使用barryvdh/laravel cors在API上启用cors。我还试图禁用它并手动添加“选项”请求,但我仍然得到相同的行为

问题似乎与飞行前请求后发出的请求有关。以下是它们的发送顺序(注意初始请求是POST):

  • 飞行前请求(选项-工作正常)

  • 对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,可能不相关。