我成功创建了一个jhipster应用程序,然后使用admin/admin登录,单击user-management,all works,url变为localhost:9000/user-management。
然而,当我使用chrome刷新按钮刷新url时,页面断开并显示消息:"Cannot GET /user-management",在按F12启动调试器后,控制台中显示以下错误消息:
拒绝执行内联脚本,因为它违反了以下内容安全策略指令:"default-src 'self'“。“unsafe-inline”关键字、散列('sha256-GKWAMtgBzlCzmucztJIeDl/kD0MKNqAT5HDcFIff2+A='),或现时值(“nonce -...”)才能启用内联执行。另请注意,没有显式设置'script-src‘,因此使用'default-src’作为备用。
请帮忙,提前谢谢。
注: yarn v1.3.2,"@ angular /core":"5.2.0",java 1.8,jwt,elastic search,中文,mysql,angular 5
发布于 2018-02-03 01:53:44
如果您设置了useHash: false并单击refresh,请求将被发送到服务器,因此您会得到如下错误:服务器正在处理客户端路由,但没有找到。因此,您必须使用servlet过滤器调整服务器端,请参阅https://github.com/jhipster/generator-jhipster/issues/4794#issuecomment-304097246中的详细信息
还请注意,这种方法不容易用于微服务体系结构中的网关。
下面是这样一个过滤器的例子,你可以调整它,并将客户端路由请求转发到'/‘,这样它们就可以被index.html中的angular应用程序解释:
public class AngularRouteFilter extends OncePerRequestFilter {
// add the values you want to redirect for
private static final Pattern PATTERN = Pattern.compile("^/((api|swagger-ui|management|swagger-resources)/|favicon\\.ico|v2/api-docs).*");
@Override
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response,
FilterChain filterChain)
throws ServletException, IOException {
if (isServerRoute(request)) {
filterChain.doFilter(request, response);
} else {
RequestDispatcher rd = request.getRequestDispatcher("/");
rd.forward(request, response);
}
}
protected static boolean isServerRoute(HttpServletRequest request) {
if (request.getMethod().equals("GET")) {
String uri = request.getRequestURI();
return PATTERN.matcher(uri).matches();
}
return true;
}
}https://stackoverflow.com/questions/48567071
复制相似问题