Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring中的Cors_Java_Angular_Spring_Http - Fatal编程技术网

Java Spring中的Cors

Java Spring中的Cors,java,angular,spring,http,Java,Angular,Spring,Http,我正在将此添加到我的控制器: @RestController @CrossOrigin(origins = "*", allowedHeaders = "*") @RequestMapping(value="/api") public class CasaVendaController @DeleteMapping("/casas-venda/{id}") public Boolean deleteCasaVenda(@PathVariable("id")

我正在将此添加到我的控制器:

@RestController
@CrossOrigin(origins = "*", allowedHeaders = "*")
@RequestMapping(value="/api")
public class CasaVendaController 

    @DeleteMapping("/casas-venda/{id}")         
    public Boolean deleteCasaVenda(@PathVariable("id") int id){
         this.casaVendaRepositorio.deleteById(id);

         return true;
    }
在我的Web安全配置适配器中,我有:

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.csrf().disable().authorizeRequests().antMatchers("/login",             

                "/api/corretores").permitAll()
                .antMatchers(HttpMethod.OPTIONS, "/**").permitAll()
                .anyRequest().authenticated().and().sessionManagement()
                .sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().cors();

        http.addFilterBefore(JwtRequestFilter, UsernamePasswordAuthenticationFilter.class);

    }

当我尝试对执行删除操作时:。浏览器抱怨未启用cors。顺便说一句,我用的是角的。我甚至连选项方法都不懂。

下一个bean会帮你很多

 @Bean
    fun corsFilter(): CorsFilter {
        val configuration = CorsConfiguration()
        configuration.applyPermitDefaultValues()
        val source = UrlBasedCorsConfigurationSource()
        source.registerCorsConfiguration("/**", configuration)

        return object : CorsFilter(source) {
            override fun doFilterInternal(request: HttpServletRequest, response: HttpServletResponse, filterChain: FilterChain) {
                response.apply {
                    this.setHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, request.getHeader("Origin") ?: "*")
                    this.setHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, "POST, PUT, PATCH, GET, OPTIONS, DELETE")
                    this.setHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS, "${HttpHeaders.AUTHORIZATION}, ${HttpHeaders.CONTENT_TYPE}")
                }
                when (HttpMethod.valueOf(request.method)) {
                    HttpMethod.OPTIONS -> response.status = HttpStatus.OK.value()
                    else -> filterChain.doFilter(request, response)
                }
            }
        }
    }


事实上,这不是科尔斯。Firefox和Chrome都在控制台上输出cors问题。但实际上是404

我的终点是:

 http://localhost:8080/api/casa(s)-venda/52
我通过邮递员发现了这个问题。在《邮递员》中,我获得了404HTTP状态。这很奇怪,;在浏览器上我得到403和邮递员404