小编And*_*kas的帖子

在 React.js 中刷新页面后清除 Axios 默认标头

我在登录组件中设置 axios.defaults.headers.Authorization = MY_TOKEN,该组件在 Authentication 组件中呈现,该组件检查 this.state.loggedin 是否设置为 true。如果为 false,则呈现 Login 组件,如果为 true,则呈现带有 BrowserRouter 的 UserComponent。BrowserRouter 读取“/”路径并导航到 Documents 组件。在此导航页面刷新期间,axios.defaults.headers.Authorization 被清除,返回值未定义。即使页面被刷新,我如何保留 axios.defaults.headers 或者我应该在每次路由器导航到其他组件时初始化默认标头?

更新

添加了一些代码如何在 Authentication.js 中进行渲染

      render() {
      return (
        <UserNavigationContainer
          {...this.props}
          logout={this.onClickLogoutHandler}
        />
      );
     }
Run Code Online (Sandbox Code Playgroud)

UserNavigationContainer.js 渲染路由(非完整代码)

<BrowserRouter>
      <div>
        <UserNavigationComponent {...this.props}>
          <Switch>
            <Route
              exact
              path="/"
              component={UserSubmittedDocumentsContainer}
            />
Run Code Online (Sandbox Code Playgroud)

所以实际上当 UserNavigationContainer 被渲染时,它导航到“/”并在导航时刷新页面。

reactjs axios

5
推荐指数
1
解决办法
3122
查看次数

构建 React App 后更改可从 env 文件访问的 Axios baseUrl

目前我正在使用放置在带有变量的 react app 根文件夹中的 .env 文件

REACT_APP_BASE_URL = http://localhost:8081

我用户 axios 默认为 api 请求设置 base url

axios.defaults.baseUrl = process.env.REACT_APP_BASEURL

构建 React App .env 文件后不考虑,如果我更改了我的基本 URL,我如何在不重新构建整个 React 应用程序的情况下做到这一点。我想让基本 url 独立,所以我可以动态更改基本 url。什么是最好的解决方案?

environment-variables reactjs axios

3
推荐指数
1
解决办法
6352
查看次数

在 Java Spring Boot 中从 XML 加载属性的正确方法

我有一个 XML 文件,其中存储了国家/地区。每个国家/地区元素都具有区域、次区域、国家/地区代码等属性。我的服务应该解析 XML 并根据提供的国家/地区名称获取区域。有没有什么方法可以将 xml 中的数据加载到内存中并使用,这样我就不需要每次想要获取国家/地区的区域时都解析 XML?我不想使用枚举,因为我想要可更新的 xml 列表,该列表仅在应用程序启动时或第一次使用我的服务时解析一次。因此,在 XML 更新之后,服务器重新启动就足够了,无需重建应用程序来更新枚举。如何才能实现这一目标?

java xml xml-parsing spring-boot

3
推荐指数
1
解决办法
1万
查看次数

防止 JPQL 查询 sql 注入

我被告知以下查询是不安全的,因为来自前端输入字段的参数:searchFor可用于 SQL 注入。请建议在下面的代码中防止 SQL 注入的最佳解决方案是什么?

@Query("SELECT u FROM User u WHERE lower(u.username) LIKE %:searchFor% " +
        " OR lower(concat(u.firstname, ' ', u.lastname)) LIKE %:searchFor% " +
        " OR lower(u.email) LIKE %:searchFor%")
Page<User> findAllAndSearch(@Param(value = "searchFor") String searchFor, Pageable pageable);
Run Code Online (Sandbox Code Playgroud)

我没有使用“+”来连接字符串,而是提供参数(:searchFor)。不确定这是否仍然不安全。

jpa sql-injection jpql spring-boot

2
推荐指数
1
解决办法
880
查看次数