【问题标题】:Serverless PHP slim framework POST does not get posted data无服务器 PHP slim 框架 POST 不获取已发布的数据
【发布时间】:2019-08-07 05:18:39
【问题描述】:

我一直在探索无服务器 php,并选择使用 slim 框架,因为我发现在我使用插件模块时更容易,而且我正在构建的只是带有几个表单的登录页面。 因此,我在超薄框架上制作了登录页面,并让它在微型实例等传统服务器上运行,但是当我专门使用 bref 在无服务器 php 上迁移它时,但 post 方法似乎不再起作用了。

我通过 AJAX 使用我使用 slim + bref serverless 创建的 API。我通过contentType : application/json,使用POST 方法,但仍然无法正常工作。

我使用了以下方法:

  1. $request->getParsedBody() -> 这在非无服务器框架上运行良好。但在无服务器 php bref 上,它出现“内部服务器错误”
  2. $_POST -> 在本地和传统服务器上运行良好,但在 cloudwatch 和 var_dumping 上它是空数组。
  3. $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


【解决方案1】:

我将更新问题,因为我刚刚想通了,我使用的是 jquery AJAX 调用。我确实使用了 contenType :application/json' 但是当我不使用 ajax 而只是简单地提交表单时它不起作用,发布的数据出现在 cloudwatch 上并被转储。我想由于一些未知的原因,它在 AJAX 上不起作用(我也在邮递员上尝试过,但没有运气)。我什至尝试使用 file_get_contents("php://input") 来获取发布的 json,但仍然无法正常工作。只会坚持页面重新加载。再次感谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多