ajax - Typo3 9.x ajax 调用
问题描述
ajax调用单路由配置:getamministrazioni.json
我尝试更改配置站点如下:
...
routeEnhancers:
News:
type: Extbase
extension: News
plugin: Pi1
routes:
-
routePath: '/{news-title}'
_controller: 'News::detail'
_arguments:
news-title: news
aspects:
news-title:
type: PersistedAliasMapper
tableName: tx_news_domain_model_news
routeFieldName: path_segment
PageTypeSuffix:
type: PageType
default: .html
map:
.html: 0
getamministrazioni.json: 1035343
errorHandling: { }
routes: { }
...
在 setup.typoscript 我有:
GetAmministrazioni = PAGE
GetAmministrazioni {
typeNum = 1035343
config {
disableAllHeaderCode = 1
debug = 0
no_cache = 1
additionalHeaders {
10 {
header = Content-Type: application/json
replace = 1
}
}
}
10 < tt_content.list.20.my_controller_getamministrazioni
}
它适用于所有页面。
- /home/getamministrazioni.json
- /page1/getamministrazioni.json
等等……等等……
我想要一条来自根目录'/getamministrazioni.json 的路由
我怎么能这样做?
解决方案
有可能将路由限制为特定的页面 id:
limitToPages: 1
但这会将您的整个映射配置限制为页面 id 1,以及 .html 后缀(我猜您不想这样做)。
不幸的是,目前无法创建多个具有相同名称的路由增强器,如下面的非工作示例:
PageTypeSuffix:
type: PageType
map:
.html: 0
PageTypeSuffix:
type: PageType
limitToPages: 1
map:
sitemap.xml: 1533906435
两种可能的解决方法:
创建您自己的 RouteEnhancer,它只是扩展 TYPO3\CMS\Core\Routing\Enhancer\PageTypeDecorator 以允许使用不同的名称(请参阅自定义增强器)
如果页面 id 不为 0,则将您的 json 页面类型重定向到错误页面(无需路由,因为 TypoScript 避免传递此页面类型)
[getTSFE().id != 1] seo_sitemap.config { additionalHeaders.10 { header = Location: /error.html } } [END]
推荐阅读
- c++ - My code is showing 'true' as output instead of 'False'
- firebase - 如何通过 Firebase CLI 从同一台机器上的 2 个不同帐户部署云功能?
- java - 确保首先调用 FirebaseApp.initializeApp(Context) 的问题
- python - 在 n_jobs sklearn 中指定核心
- nestjs - 模型“订单”的基础表不存在。错误代码:P1014(棱镜)
- keras - 每次迭代时 keras CustomDataGenerator 的输出
- android - BigQuery 报告 UNKNOWN_OS
- gitlab - 带有 Gitlab 401 的 Sonarqube 徽章
- regression - glmer模型错误:可变长度不同
- html - CSS:无效的属性值