【问题标题】:Routing in Symfony 1.4: Is there a way to allow sf_method = OPTIONS for preflight HTTP requestsSymfony 1.4 中的路由:有没有办法允许 sf_method = OPTIONS 用于预检 HTTP 请求
【发布时间】:2015-10-06 21:36:25
【问题描述】:

大家可能都知道浏览器在某些情况下会执行预检 HTTP 请求: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests

我的 Web 应用程序仍在 Symfony1 上。我想实现一个 RESTful 服务,因此使用 Symfony 路由来允许特定的 HTTP 请求方法,如 GET 或 POST (http://symfony.com/legacy/doc/reference/1_4/en/10-Routing#chapter_10_sub_sf_method)。

例子:

login:
  url:   /v1/login
  class: sfRequestRoute
  param: { module: rest, action: login }
  requirements:
    sf_method: [post, put, delete]
    #sf_method: [options] NOT WORKING

在我看来,OPTIONS 请求不能被定义/处理为 sf_method 值。因为如果我的想法是正确的,我找不到任何信息,所以我想知道我是否正确,或者我也找不到解决方案。

提前致谢!

【问题讨论】:

    标签: symfony1 httprequest symfony-1.4 httpverbs preflight


    【解决方案1】:

    很抱歉再次提出这个老问题,但我找到了解决方案。我遇到了同样的问题,我将请求方法 OPTIONS 添加到 lib/sfRequest.class.phplib/sfWebRequest.class.php 中的允许方法中您可以在此处查看最新提交以查看差异:6ad018c

    由于我无法更新原始 Symfony1 GitHub 存储库,因此我创建了一个副本,其中包含由于各种 PHP 升级而需要的额外修复。这也修复了由于在 preg_replace 调用中使用 /e 修饰符而导致的 PHP 已弃用警告。
    请注意,这仍然不能使 Symfony1 PHP7 兼容。我用 PHP 5.6.30 成功运行了这个

    仓库是https://github.com/diem-project/symfony.git

    背景:Diem 使用 Symfony1 (1.4.20),因此 GitHub 组织 diem-project

    【讨论】:

      猜你喜欢
      • 2018-02-06
      • 2014-09-27
      • 2011-08-27
      • 2012-11-24
      • 2017-07-04
      • 2023-02-09
      • 2016-08-20
      • 1970-01-01
      • 2018-01-29
      相关资源
      最近更新 更多