【问题标题】:Symfony Not finding RoutesSymfony 找不到路由
【发布时间】:2017-12-29 13:15:57
【问题描述】:

不得不承认我是 Symfony newB。一般来说,我确实知道我在做什么,但我被这个问题难住了。

我得到了一对要维护的软件包。一方面是用 Angular.js 编写的前端。然后是使用 Symfony 编写的支持。

安装后端部分后,使用 composer.我现在正在尝试测试。

前端在 xxx.yyy.com/app 启动时似乎很好。它的第一个屏幕是一个登录屏幕,它要求输入用户名和密码。提交按钮触发 xxx.yyy.com/api/users/token 的请求。屏幕上的用户名和密码以 json 格式存储在 http 请求中。

一旦发出请求,我已经确定 symfony 代码中的 app.php 会触发并启动用户身份验证过程。在尝试通过代码进行大量调试之后,我可以看到 symfony 后端确实有用户名和密码,并且知道该请求是一个格式良好的 POST 请求。但是,我不断收到错误“找不到路由”,然后被踢出 symfony。

完全有理由相信代码编写正确,问题在于我为安装代码所做的一些事情。当我运行 debug:router 进程时,我可以找到正确的路由。但是,这条路线永远找不到。我也尝试过其他路线,结果相同。

任何人都可以提出为什么 debug:router 进程中显示的路由在实际使用中不起作用的原因吗?我真的很难过,不胜感激。

【问题讨论】:

  • 奇怪的是当路由不匹配时。它与debug:router 中显示的不同。许多变量控制着这些事情; uri、方法、要求、路由顺序、缓存等。考虑发布路由调试输出和您的测试代码示例 (How to create a Minimal, Complete, and Verifiable example),这样我们就可以实际解决问题,而不是随意抛出想法/解决方案。

标签: symfony routes


【解决方案1】:

应用程序是否使用 CORS? 也许您必须将您的开发域列入白名单

【讨论】:

  • 不确定 CORS 是什么,会查一下
【解决方案2】:

认为我真的解决了这个问题。这是前端 javascript 为后端创建 URL 的方式以及配置我的服务器的方式。

我的前端是 xxx.kjitx.com/app 此代码然后将基本 URL 添加到后端的命令以形成 xxx.kjitx.com/api/users/token 的请求然后当我的后端接收控制它正在剥离 url 的 xxx.kjitx.com/api 部分并将用户/令牌字符串发送到路由器。路由器正在寻找 /api/users/token,因此路由失败。在握手中,我丢失了路线的第一部分,api。通过强制前端添加一个额外的api来发现这一点,即xxx.kjitx.com/api/api/users/token并且它可以工作。

现在我只需要返回我的代码来正确设置我的地址,这样我就不会丢失地址的重要部分。

【讨论】:

    猜你喜欢
    • 2016-07-03
    • 1970-01-01
    • 2017-01-01
    • 2023-03-29
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    • 2018-05-30
    相关资源
    最近更新 更多