我在webstorm上创建了一个客户端angular,在Eclipse上创建了一个Spring Boot服务器。问题是,当我尝试打开会话时,会收到以下错误消息:
OPTIONS http://localhost:8080/allquestions 401 ()
(anonymous) @ angular.js:12410
p @ angular.js:12155
(anonymous) @ angular.js:11908
(anonymous) @ angular.js:16648
$eval @ angular.js:17972
$digest @ angular.js:17786
$apply @ angular.js:18080
(anonymous) @ angular.js:19924
f @ angular.js:6111
(anonymous) @ angular.js:6390
XMLHttpRequest cannot load http://localhost:8080/allquestions. Response for preflight has invalid HTTP status code 401
@EnableWebMvc
@Configuration
@ComponentScan
public class WebConfig extends WebMvcConfigurerAdapter {
public WebConfig() {
super();
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/login").setViewName("login");
registry.addViewController("/").setViewName("welcome");
registry.addViewController("/welcome").setViewName("welcome");
registry.addViewController("/exam").setViewName("exam");
registry.addViewController("/report").setViewName("report");
registry.addViewController("/error").setViewName("error");
registry.addViewController("/editing").setViewName("editing");
}
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
super.addResourceHandlers(registry);
registry.addResourceHandler("/images/**").addResourceLocations("/images/");
registry.addResourceHandler("/css/**").addResourceLocations("/css/");
registry.addResourceHandler("/js/**").addResourceLocations("/js/");
}
@RestController
public class HomeController {
@Autowired
private BusinessModel businessModel;
private List<String> messages;
private User currentUser;
@PostConstruct
public void init() {
messages = businessModel.getMessages();
}
// Communicate informations to client
private void sendOptions(HttpServletResponse response) {
if (businessModel.getCorsNeeded().booleanValue()) {
// Fix the header CORS
response.addHeader("Access-Control-Allow-Origin", "*");
// Header Authorization
response.addHeader("Access-Control-Allow-Headers", "Authorization");
}
}
// questions list via OPTIONS
@RequestMapping(value = "/allquestions", method = RequestMethod.OPTIONS)
public void getAllQuestions(HttpServletResponse response) {
sendOptions(response);
}
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UsersService usersService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.httpBasic();
http.authorizeRequests().antMatchers("/login").permitAll().antMatchers("/**").hasRole("USER").and().formLogin()
.loginPage("/login").and().logout();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(usersService).passwordEncoder(new BCryptPasswordEncoder());
}
}
无法添加xml文件(工作上下文限制)...
我完全被堵住了,我需要你的帮助!
每个人的解决方案!
您可以创建一个可以进行排序的筛选器:
公共类CorsFilter实现Filter{
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filter)
throws IOException, ServletException {
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setHeader("Access-Control-Allow-Origin", "*");
httpResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
httpResponse.setHeader("Access-Control-Max-Age", "3600");
httpResponse.setHeader("Access-Control-Allow-Headers", "Authorization");
filter.doFilter(request, response);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}
@EnableAutoConfiguration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UsersService usersService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.addFilterBefore(new CorsFilter(), ChannelProcessingFilter.class);
http.csrf().disable();
http.httpBasic();
http.authorizeRequests().antMatchers(HttpMethod.OPTIONS, "/", "/**").permitAll();
http.authorizeRequests().antMatchers(HttpMethod.GET, "/", "/**").permitAll();
//http.authorizeRequests().antMatchers("/login").permitAll().antMatchers("/**").hasRole("USER").and().formLogin().loginPage("/login").and().logout();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(usersService).passwordEncoder(new BCryptPasswordEncoder());
}
}
在那里,您可以看到在请求之前正确地调用过滤器:http.addFilterBefore(new CorsFilter(),ChannelProcessingFilter.class)。
这是我找到的最好的解决办法,也是唯一对我有效的办法!我希望,它能帮到你!
问题内容: 我正在努力在要创建的桌子上设置角度分页。 我已经完成了文档工作。但是,我没有看到如何将分页连接到表。我的分页大小与数组大小匹配。它们是正确数量的按钮链接,用于页面的页面长度。但是,我的桌子仍然全长,无法测试分页。 这是我的桌子主体 我已经将表格主体设置在 表格标签的 外面,在里面尝试了它,但是我的分页控件没有出现。 这是我的分页 我还设置了一个 p标签,以确保选项卡响应 段落内的总项目
我试图连接,以便在Derby中为一个类项目创建db,但遇到了以下问题:我从Derby官方网站下载了zip文件,目前我使用的是10.12.1.1版本,我已经执行了startNetwork命令,它向我显示了一个日志文件,该文件表示已准备好接受端口1527上的连接,但当我尝试使用该命令连接时(在ij中):connect
试图通过IMAP连接连接到gmail,捕获javax.mail.MessagingException 堆栈跟踪: 主:
当我试图在flash插件和red5服务器安装之间建立连接时,我得到了以下错误。请帮帮我. [ERROR][rtmpConnectionExecutor#dtqatxjixlu78-1]org.red5.server.net.rtmp.basertmphandler-Exception java.lang.nosuchmethoderror:org.red5.server.scope.scope$c
我想做的密码强度角,大写,小写,数字和特殊字符角在控制台中,我得到的错误。 没有密码强度的提供者!在passwordstrength.ts文件中 超文本标记语言 断续器 密码strength.ts
问题内容: 我正在使用角度生成器构建一个yeoman应用程序。 我的index.html文件中包含的js库是: 仅当在jquery 之前 包含jquery时,才会出现此问题,如果在jquery 之后 ,则不会发生。 标题指出的问题是,我在控制台中收到 “警告:试图多次加载角度” ,应用无法初始化。 有人知道为什么会发生这种情况吗? 我只有一个ng-app,我只包含了一次angular …一切。它看