symfony1 - Symfony 1.4 中的路由 : Is there a way to allow sf_method = OPTIONS for preflight HTTP requests

标签 symfony1 httprequest symfony-1.4 http-verbs preflight

你们可能都知道浏览器在某些情况下会预检 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 值。因为我找不到任何信息,如果我的想法是正确的,我想知道我是否是正确的,或者也许有我找不到的解决方案。

提前致谢!

最佳答案

很抱歉重新提出这个老问题,但我找到了解决方案。我遇到了同样的问题,我将请求方法 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

关于symfony1 - Symfony 1.4 中的路由 : Is there a way to allow sf_method = OPTIONS for preflight HTTP requests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31471172/

相关文章:

symfony1 - Symfony 表单 - 记住之前选择的文件

http - 服务器不响应手动请求

javascript - 在javascript中的HTTP POST请求中发送cookie

http - 如何在 HTTP1.1 中进行标准的符合 GET 查询

doctrine - 如何在 Doctrine 查询 symfony 1.4 中使用联合?

php - 在一个网站上使用多个 php 框架

session - 交响乐 1.4 : Storing an array in session with SetAttribute

php - 如何在 Symfony 和 Doctrine 中使用存储过程

php - 未知方法 SfGuardUserTable::retrieveByUsername Symfony1.4

mysql - 了解 SQL 别名