【发布时间】:2019-08-07 05:18:39
【问题描述】:
我一直在探索无服务器 php,并选择使用 slim 框架,因为我发现在我使用插件模块时更容易,而且我正在构建的只是带有几个表单的登录页面。 因此,我在超薄框架上制作了登录页面,并让它在微型实例等传统服务器上运行,但是当我专门使用 bref 在无服务器 php 上迁移它时,但 post 方法似乎不再起作用了。
我通过 AJAX 使用我使用 slim + bref serverless 创建的 API。我通过contentType : application/json,使用POST 方法,但仍然无法正常工作。
我使用了以下方法:
-
$request->getParsedBody()-> 这在非无服务器框架上运行良好。但在无服务器 php bref 上,它出现“内部服务器错误” -
$_POST-> 在本地和传统服务器上运行良好,但在 cloudwatch 和 var_dumping 上它是空数组。 -
$request->getParams()(不工作,不存在这种方法,但我在 Stackoverflow 中看到了)
我发现的解决方法是在 GET 方法上使用它,但我实际上想使用 POST 方法,因为我想在密码上使用它。
谁有过同样的经历?
谢谢
【问题讨论】:
-
您的
bref路由配置是什么样的? -
src\bref.php<?php declare(strict_types=1); include __DIR__.'/public/index.php';更多格式请参考here: -
我参考
template.yaml中API网关设置的路由配置 -
我使用的是
mnapoli/bref: "~0.2.27",它只有serverless.yml,我的配置就像this -
我做到了!好的,所以我将更新问题,因为我刚刚弄清楚了,我使用的是 jquery AJAX 调用。我确实使用了
contenType :application/json',但是当我不使用 ajax 而只是简单地提交表单时,它不起作用,发布的数据出现在 cloudwatch 上并被转储。我猜出于某种未知原因,它在 AJAX 上不起作用(我也在邮递员上尝试过,但没有运气)。我什至尝试使用file_get_contents("php://input")来发布 json,但仍然无法正常工作。只会坚持页面重新加载。 (感谢您提供链接 contentType!)再次感谢!
标签: php post slim serverless bref