- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我设置了一个单页应用程序,它使用 Controller (用 PHP 编写)从 API 获取数据。到目前为止,我没有遇到任何问题,数据填充表,在选择表元素时它会使用新的 url 和部分数据(主要是 ID)重新呈现,但在尝试获取用户/{id} 数据时会抛出错误。在使用 localhost 测试类似链接时....../api/company/user 它将数据显示为 json,但是 localhost 的这个特定链接....../api/company/user/{UserIDHere} 只是重新呈现顶部有菜单和正文的页面是完全空白的。我完全不知道可能是什么问题。
到目前为止,我已确保 API GET 链接与路由不同。目前链接如下..
/company
/company/users
/company/users/123
GET 请求完成/公司/用户和/company/user/123 注意用户缺少的 S
理论上它不应该产生任何问题,尤其是在向以下对象发出获取请求时:
/company/user - 获取所有具有关联 ID 等的用户但是/company/user/{userID} 提供了一个错误,指出有一个意外的标记 <(因为它生成 HTML 而不是 Json)
我已经使用 postman 测试了 API 端点,它运行良好,为两个请求获取所有数据。代码如下:
这是使用 postman ,获取“/company/user”..:
{"status":"OK","result":{"total":3},"data":[{"id":118,"firstName":"Test123","lastName":"Driver 2","fullName":"Test123 Driver 2","email":"driver2@abc.com","type":"emp","typeName":"Employee","role":"driv","roleName":"Driver","birthDate":null},{"id":139,"firstName":"dsghsdhsd12511","lastName":"sagsdh","fullName":"dsghsdhsd12511 sagsdh","email":"asgsagas@fsaf.sf","type":"con","typeName":"Contractor","role":"acco","roleName":"Accountant","birthDate":null},{"id":122,"firstName":"123321424","lastName":"Driver 3","fullName":"123321424 Driver 3","email":"test@fsafs.sf","type":"emp","typeName":"Employee","role":"driv","roleName":"Driver","birthDate":null}]}
这是使用 Postman 获取“公司/用户/118”
{"status":"OK","data":{"id":118,"firstName":"Test123","lastName":"Driver 2","fullName":"Test123 Driver 2","email":"driver2@abc.com","type":"emp","typeName":"Employee","role":"driv","roleName":"Driver","birthDate":null,"ssn":null,"documents":[],"access":{"accounting":true,"company":false,"dispatch":false,"equipment":false,"safety":false},"accountId":null}}
这是我用来在 React 代码中获取数据的请求
getUsers() {
Api.get(this.controller, "/company/user", data => {
this.setState({ users: data });
console.log(this.state.users);
});
}
getUser(id) {
if (id) {
Api.get1(this.controller, "/company/user/" + id, data => this.setState({ user: data }));
}
}
获取用户效果很好。获取用户根本没有。
其他地方的链接都指向/company/users或在选定表格元素的情况下
<Route exact path={"/company/users"} component={() => <UserControlPage/>} />
<Route path={"/company/users/:id"} component={UserControlPage} />
这是被调用的 CompanyController 函数:
$app->get('/' . API . '/' . self::NAME . "/user", function (Request $request, Response $response) use ($c) {
return Api::get($c->con['api'], $c->log, $request, $response, "/" . self::NAME . "/user", $c->con['session']);
});
$app->get(API . '/' . self::NAME . "/user/{id}", function (Request $request, Response $response, $pp) use ($c) {
return Api::get($c->con['api'], $c->log, $request, $response, "/" . self::NAME . "/user/" . Api::pathParameter($pp, 'id'), $c->con['session']);
});
我希望在选择表格中的一个元素后,它会重新呈现页面,选择 ID,让所有用户在左侧生成一个列表(这部分有效),然后只会为 body 的其余部分,但是对于后来我得到一个成功的请求(对于所有用户)和第二个产生错误消息:
ERROR: SyntaxError: Unexpected token < in JSON at position 0
如果格式错误/您需要特定的文件或信息,请告诉我,过去 3 天我一直在解决这个问题,但我无法解决。
最佳答案
好吧,经过多年对可能出现的错误进行虹吸之后,它仍然让我相信它很可能是 Controller 的问题......注意细节是我的问题..
事实证明,唯一缺少的是一个“/”
基本上转动这个:
$app->get(API . '/' . self::NAME . "/user/{id}", function (Request $request, Response $response, $pp) use ($c) {
return Api::get($c->con['api'], $c->log, $request, $response, "/" . self::NAME . "/user/" . Api::pathParameter($pp, 'id'), $c->con['session']);
});
进入这个:
$app->get('/' . API . '/' . self::NAME . "/user/{id}", function (Request $request, Response $response, $pp) use ($c) {
return Api::get($c->con['api'], $c->log, $request, $response, "/" . self::NAME . "/user/" . Api::pathParameter($pp, 'id'), $c->con['session']);
});
解决了这个问题。是的,它只是在 API 之前一直缺少一个 /(一个正斜杠)。
是的,我确实修复了其余的 Controller ,因为我似乎复制了一个错误,因此我把它们都搞砸了。
感谢所有检查问题的人!!
关于javascript - 来自 php Controller 的 React SPA API 端点打开一个空白的 SPA 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57363340/
Yii::$app->runAction('new_controller/new_action', $params); 我相信这可以用来从另一个 Controller 调用 Controller Ac
这个问题类似于 this ,但我需要访问父成员(不是控制)。我不知道是否可以不使用依赖注入(inject)。 例如,我有一个父级,有一个成员调用用户,我需要从子 Controller 访问用户。 最佳
我有包含 2 个布局的根布局:- 选项面板- 绘制区域 我正在尝试的是访问 OptionsPaneController 中的 DrawAreaController 以调用其绘制方法。下面是 Optio
我的应用程序的 View Controller 层次结构设置如下: UIViewController | UITabBarController | UINavigationCo
我的应用程序的 View Controller 层次结构设置如下: UITabBarController | UINavigationController | | |
当我第一次为我目前在 Storyboard 中开发的应用程序创建基础布局时,我分两步完成: 选择我的 View Controller 并使用 Editor->Embed In->Navigation
设计要求: 显示用户可以选择的项目列表 选择一个项目后,使用后退按钮将用户带到一个新 View 。新 View 应在底部包含第一个屏幕中不存在的选项卡列表 单击选项卡中的项目时,应出现一个带有后退按钮
将父 Controller 设置为“parentCtrl as vm”,并将子 Controller 设置为“childCtrl as vmc”,以避免名称冲突,并且效果良好。 如何在子 Contro
我已经阅读了一些答案,例如关闭当前的 ViewController,但我的情况有所不同,因为我正在展示另一个 ViewController。 虽然我无法访问它的属性,但此代码显示了带有导航 Contr
如我所见,如果我们要实例化一个Model(例如,名为Post),我们只需调用: $post = new Post(); 现在,我还想实例化一个Controller(例如,名为Post,并为此 Cont
我已经疯狂地在整个网络上搜索解决我的问题的方法,但目前还没有。我的问题是我必须检查是否在 HTTP 请求中获得特定文本,该请求在一个 while 循环中,如果我这样做了,那么我应该离开循环并继续线程,
我想用this.get('controllers.pack.query');要得到App.PackQueryController在 App.PackController ,但失败了。 我认为问题是 E
我刚开始使用 Laravel。当我使用 codeigniter 或 zend 框架时,我可以将我的 Controller 组织到一个单独的目录中。例如,我可以创建“user/permission.ph
在 emberjs 前 2 我们可以从另一个 Controller 访问 Controller 或 Controller 中的任何方法 以下方式: App.get('router').get('nav
这可能是非常简单的实现,但我是 iOS 编程的新手,我似乎被卡住了。 所以,基本上,我有一个选项卡式应用程序。我决定除了标签栏之外还需要一个导航栏。为此,我放置了标签栏 Controller ,然后添
我有这个列表 Controller , define([ 'jquery', 'app' ], function ($,app) { app.controller("ListC
我有 3 个 Controller :RootController、FirstController 和 SecondController。我想从 RootController -> FirstCont
我有以下 Controller : /controllers/api/base_controller.rb /controllers/api/v1/articles_controller.rb 当为文
我是 Angular JS 的新手,尝试在另一个 Controller 中调用一个 Controller ,但出现以下错误。 ionic.bundle.js:21157 TypeError: $con
我有一个标签栏 Controller 和它的 3 个 child ,我还有另一个 View ,我制作了一个从 child 到 View Controller 的自定义转场,还有一个从 View Con
我是一名优秀的程序员,十分优秀!