reactjs - 基于通配符路由的esri-arcgis请求拦截
问题描述
我正在尝试在我的反应应用程序中实现 MapLayer。该地图只能通过代理访问,该代理需要身份验证来识别每个请求的每一端的用户。
为了提供令牌,我添加了以下请求拦截器,以确保访问该后端的所有调用都将被授权扩展。如果我这样做,则不会向请求中添加标头。
esriConfig.request.interceptors.push({
urls: ['backend/api/*'],
before: async function (params: any) {
params.requestOptions.headers = {
Authorization: 'Bearer ' + token),
};
},
});
如果我删除 urls 参数以便使用令牌扩展所有路由,我会收到一些 cors 错误,因为 esri 包还会对另一个我被阻止的 api 进行一些调用,因为我正在发送一个不期望的授权标头。
其他api: https ://www.arcgis.com/sharing/rest/portals/self?f=json&culture=de-de
我如何确保只有对我的 api 的请求将使用自动标头进行扩展?
解决方案
urls 属性采用 String 或 RegExp 或它们的数组。请参阅https://developers.arcgis.com/javascript/latest/api-reference/esri-config.html#RequestInterceptor
您将 url 指定为字符串(不是正确的 RegEx)。你需要改变
urls: ['backend/api/*'],
至
urls: [/backend\/api/],
或(没有数组)
urls: /backend\/api/,
推荐阅读
- java - 从 List、stream、Java 8 创建具有嵌套属性的嵌套映射
- ios - UICollectionView 在再次触发 reloadData() 时发现 nil
- python - Flask 没有在 DATABASE 中插入值
- node.js - Gulp:程序的异常行为
- c - Winsock Server 使用 WinAPI 线程重置第一个连接
- angular - 使用 NPM 为 Angular 构建 Docker 映像
- python - 包含 pyspark SQL: TypeError: 'Column' object is not callable
- xslt - 在 XSLT 2.0 中使用多个参数进行过滤
- html - 在 Chrome Mobile 上导入 font-awesome 导致 x 轴溢出
- reporting-services - SSRS:百分比目标