问题标签 [cakephp-routing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
21622 浏览

php - CORS 预检通道未成功。仅在 Firefox 中。铬工作正常

所以我有一个不寻常的问题,我不确定如何进行调试。我有一个在服务器端使用 cakephp 的 angular 4 应用程序。

在我的应用程序中,我有许多不同的屏幕可以访问,除了一个,它只是 Firefox 的一个问题。如果我使用chrome,我可以打开它。我在 Firefox 中收到以下警告

跨域请求被阻止:同源策略不允许在 http://localhost:8080/api/cross-series/network-series读取远程资源。(原因:CORS 预检通道未成功)。

这是我用来导航到屏幕的链接

然后在 php 中,我有以下 Cors 代码

在日志中,我可以看到 Firefox 和 Chrome 的输出不同。在FF我得到以下

2018-06-10 22:33:48 调试:这是操作:选项

在 Chrome 中它不同

2018-06-10 22:41:44 调试:这是操作:getNetworkSeries

自从我从 angular 2 升级到 angular 5 后,这才开始。我不确定这是否与它有关,但在我的旧环境中它工作正常,但我现在无法让它与 firefox 一起使用。关于如何开始调试这样的东西的任何想法?

更新:

我尝试将请求 URL 更改为使用 IP 地址而不是服务器名称,但它没有产生任何影响。

更新:

我可以在我的 php 日志中看到尝试路由到正确的控制器时出错

018-06-11 10:20:32 错误:[MissingControllerException] 找不到控制器类 Cross-seriesController。异常属性:数组('class' => 'Cross-seriesController', 'plugin' => NULL, )请求 URL:/api/cross-series/network-series 堆栈跟踪:

我无法弄清楚它从哪里获取 Cross-seriesController 作为 url 是:

/api/跨系列/网络系列

这条路线是

这些是 http 请求标头

0 投票
1 回答
762 浏览

php - 传递给视图的普通 PHP 路由器参数

我正在用 PHP 创建一个基本的路由器,关于如何编写普通的 PHP 路由器的在线资料并不多。所以下面是我目前的实现。基本上每个请求都被重定向到 index.php,然后它使用类路由器将用户重定向到 home.php 或 add.php。问题是如何将任何类型的变量从 index.php 传递到 home.php 或 add.php?

我的想法是我需要保存我想传递给一些全局变量的数据,如果我请求让我们说“views/home.php”home.php 将有权访问该全局变量并可以使用它。

项目文件系统:

0 投票
1 回答
297 浏览

reactjs - 无法通过 ReactJS 访问 CakePHP API 端点。只能通过浏览器

我正在尝试通过 CakePHP 为我的服务器构建一个 REST API。我以为我可以正常工作,因为我可以通过 Web 浏览器接收 JSON 响应,但是当尝试通过 ReactJS 访问相同的路由时,控制器操作实际上并没有触发。

阅读 CakePHP 文档我真的应该只需要实现这些代码行来让 API 工作(根据文档),我做到了:

/config/routes.php

Router::scope('/', function($routes) { $routes->setExtensions(['json']); $routes->resources('Users'); });

这是我想要访问的 API 端点:

在这里,我通过浏览器成功地到达了那个端点。我的日志消息也出现在error_log.txt文件中

在此处输入图像描述

这是我通过 ReactJS 发出请求的地方:

handleRequest = () => { console.log('making request'); axios({ method: 'get', url: 'https://157.230.176.243/users/register.json', data: { email: this.state.email, password: this.state.password } })
.then(function(response) { console.log('got response'); console.log(response); })
.catch(function(error) { console.log('got error'); console.log(error); })
.then(function(data) { console.log('always executed'); console.log(data); }); }

当我通过 ReactJS 提出这个请求时,我得到一个XHR failed loading: OPTIONS "https://157.230.176.243/users/register.json"

此外,当通过 ReactJS 发出此请求时,我的日志消息不会被写入error_log.txt

0 投票
1 回答
50 浏览

cakephp - CakePHP 布局模板覆盖视图模板

我已经安装了 CakePHP 3.8 并且我的布局模板 (/src/Template/Layout/default.ctp) 完全覆盖了我的控制器视图 (src/Template/Users/login.ctp)。

我在两个文件的开头/结尾都有 echo'd & die()'d,所以我知道它们被调用/渲染,但是一旦调用/渲染 default.ctp,login.ctp 就消失了。

我认为这是一个路由问题,但我不确定。我是安装/设置 CakePHP 的新手。任何帮助将不胜感激。

0 投票
1 回答
370 浏览

php - 如何强制所有 URI 请求到 index.php?

在我的index.php(在我的项目根目录中)我有一个基本的路由系统,它获取 url(使用$_SERVER[‘REQUEST_URI])并调用正确的“控制器”,然后调用正确的“视图”(因此,实现非常基本的 MVC)。我的index.php样子是这样的:

问题是,我似乎无法让所有请求都转到index.php. 显然,如果您去,localhost/myproject/您将到达index.php(因此将调用适当的控制器),但是我想要的是,即使您localhost/myproject/contact首先键入直接到index.php. 这样index.php就可以为您处理路由。

0 投票
0 回答
59 浏览

cakephp - CakePHP 2.10 路由一个独特的 slug 多个模型

我一直在尝试通过允许 /slug 访问页面和用户模型/控制器来修改客户网站。我已经阅读了所有 CakePHP 2 Routing 书籍,但是它没有详细介绍如何完成这样的事情。我试过这个:

应用程序/配置/routes.php

app/Lib/Routing/Route/SlugRoute.php

遗憾的是,这适用于页面,但不适用于用户。我考虑过修改返回的参数并设置控制器/模型、视图等。但我不认为这是执行此操作的正确方法。有什么建议或解决方案吗?