角度代理问题导致index.html或cors错误

时间:2018-11-14 19:52:52

标签: spring angular proxy cors

大家好,我的客户有一些问题。 每当我使用这样的Proxy向我的spring后端发出发布请求时...

{
   "/api": { 
      "target": "http://localhost:3000", 
      "secure": false, 
      "changeOrigin": true,
      "pathRewrite": {
          "^/api": "" 
       }
   }
}

如果我将changeOrigin设置为False,那么它将按预期在后端工作。登录正常。唯一奇怪的是角度客户端的响应。我没有从后端服务器获得原始响应,而是得到了我的有角度应用程序的index.html文件的内容。 httpClient.post.subscribe(...)中的响应只是Index.html文件的内容。

然后我尝试将changeOrigin设置为true。但是后来什么也没有了。 我收到错误提示,并且Spring Backend拒绝了该请求。为什么? 我以为,当我想要在后端禁用cors时,使用代理是可行的方法。至少在设置开发环境方面。

在后端,我的春季安全防护如下:

@Override
public void configure(HttpSecurity http) throws Exception {
    http.csrf().disable().exceptionHandling()
            .authenticationEntryPoint(
                    (request, response, authException) -> response.sendError(HttpServletResponse.SC_UNAUTHORIZED)
            )
            .and().authorizeRequests()
            .antMatchers("/login", "/authorize").permitAll()
            .anyRequest().authenticated()
            .and().formLogin().permitAll();//.and().httpBasic();

}

在我的浏览器中,客户端向我显示以下错误消息:

errormessage

1 个答案:

答案 0 :(得分:0)

为解决我的问题,我在后端激活了跨源令牌。

@Override
public void configure(HttpSecurity http) throws Exception {
    http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
}

我认为,如果我使用代理服务器,那就没有必要了。