簡體   English   中英

從 JS UI 發布到 Java API 時,如何防止 CORS 策略錯誤

[英]How do I prevent a CORS policy error when posting from JS UI to Java API

我的前端應用程序給出了這個錯誤:

CORS 策略已阻止從源“http://localhost:3000”訪問“http://localhost:9025/customer/registerDocs/”處的 XMLHttpRequest:確實如此沒有 HTTP 正常狀態。

當這被稱為:

updateDocsStatus() {
    return ApiService.postData('http://localhost:9025/customer/registerDocs');
}

這是API中的controller方法:

@PostMapping(value = Constants.REGISTER_DOCS_PATH,
        consumes = {MediaType.APPLICATION_JSON_VALUE},
        produces = {MediaType.APPLICATION_JSON_VALUE})
@ResponseStatus(HttpStatus.OK)
public void registerUserForDocs(HttpServletRequest request){
    String username = securityService.getUsername(request);
    customerHelper.registerCustomerForEdocs(username);
}

我不禁覺得問題出在前端。 我在這里遺漏了什么明顯的東西嗎?

這就是我使用的,可能最好將其與特定的開發配置文件一起使用

@Configuration
public class CorsConfiguration implements WebMvcConfigurer {

@Override
public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/api/**")
            .allowedMethods("*")
            .allowedOrigins("http://localhost:3000")
            .allowedHeaders("*");
}
}

如果您使用 Spring 安全性,則可以通過添加以下 bean 為所有路徑禁用 CORS(不是最佳實踐)

@Configuration
public class WebConfiguration implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**").allowedMethods("*");
    }
}

或者您可以微調到 POST 方法和您的特定文檔路徑 (customer/registerDocs)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM