问题标签 [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.
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 请求标头
php - 传递给视图的普通 PHP 路由器参数
我正在用 PHP 创建一个基本的路由器,关于如何编写普通的 PHP 路由器的在线资料并不多。所以下面是我目前的实现。基本上每个请求都被重定向到 index.php,然后它使用类路由器将用户重定向到 home.php 或 add.php。问题是如何将任何类型的变量从 index.php 传递到 home.php 或 add.php?
我的想法是我需要保存我想传递给一些全局变量的数据,如果我请求让我们说“views/home.php”home.php 将有权访问该全局变量并可以使用它。
项目文件系统:
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
cakephp - CakePHP 布局模板覆盖视图模板
我已经安装了 CakePHP 3.8 并且我的布局模板 (/src/Template/Layout/default.ctp) 完全覆盖了我的控制器视图 (src/Template/Users/login.ctp)。
我在两个文件的开头/结尾都有 echo'd & die()'d,所以我知道它们被调用/渲染,但是一旦调用/渲染 default.ctp,login.ctp 就消失了。
我认为这是一个路由问题,但我不确定。我是安装/设置 CakePHP 的新手。任何帮助将不胜感激。
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
就可以为您处理路由。
cakephp - CakePHP 2.10 路由一个独特的 slug 多个模型
我一直在尝试通过允许 /slug 访问页面和用户模型/控制器来修改客户网站。我已经阅读了所有 CakePHP 2 Routing 书籍,但是它没有详细介绍如何完成这样的事情。我试过这个:
应用程序/配置/routes.php
app/Lib/Routing/Route/SlugRoute.php
遗憾的是,这适用于页面,但不适用于用户。我考虑过修改返回的参数并设置控制器/模型、视图等。但我不认为这是执行此操作的正确方法。有什么建议或解决方案吗?