【发布时间】:2017-12-12 16:40:28
【问题描述】:
我有两个 laravel 应用程序,一个用作管理面板,另一个用作 API 服务器。
我正在尝试向 API 发出 jQuery AJAX Post 请求,但响应的行为似乎很奇怪。
我正在使用 barryvdh/laravel-cors 在 API 上启用 CORS。我也尝试禁用它并手动添加“选项”请求,但我仍然得到相同的行为。
问题似乎与在预检请求之后发出的请求有关。以下是它们的发送顺序(注意初始请求是 POST):
预检请求(OPTIONS - 工作正常)
对 API 端点的 GET 请求(不知道为什么这样做)。它将 302 Found 重定向返回给引用者(给客户端)
对 API 端点的 POST 请求。同样的 302 重定向回来。
对发送请求的管理 url 的 OPTIONS 请求(由于管理应用上没有 CORS 而失败)。
这是请求流程的图像: Request Flow (Chrome network panel)
我不得不提一下,我没有在控制器中进行任何重定向,也没有添加任何可以做到这一点的中间件。
【问题讨论】:
-
你能看一下服务器日志吗?你也打开了mod安全性。如果是这样,请查看 mod sec 日志。
-
日志不显示任何内容。我确实注意到问题是由 laravel 验证器引起的。但这应该会抛出 400 Bad request。
-
我不知道 mod sec,我在 XAMPP 下的 localhost 上运行它们。我可以检查你是否认为它是相关的。
-
如果只是运行 XAMPP 可能不相关。