![](/img/trans.png)
[英]Javascript AJAX call to SpringBoot controller and getting response in JSON
[英]AJAX call to SpringBoot controller causes CORS error
我正在使用 AJAX 將 JSON 傳遞給我的控制器。 但我無法這樣做,因為我收到如下 CORS 錯誤:
訪問 XMLHttpRequest at ........ from origin 'null' 已被 CORS 策略阻止:對預檢請求的響應未通過訪問控制檢查:沒有 'Access-Control-Allow-Origin' 標頭存在請求的資源。
這是我的 Javascript 和嵌入式 AJAX 調用:
database.on('child_added', function (snapshot) {
var data = {};
data["CaptainName"] = snapshot.val().CaptainName;
data["CookName"] = snapshot.val().CookName;
data["LogicalConditions"] = snapshot.val().LogicalConditions;
$.ajax({
headers: { 'Access-Control-Allow-Origin': '*' },
type: "GET",
contentType: "application/json",
url:"my-localhost/application/print",
data: JSON.stringify(data),
dataType: 'json',
cache: false,
success: function(){
console.log("Successfully sent payload")
},
error: function(e){
console.log("Error:" , e)
}
});
這是我的控制器:
@CrossOrigin(origins = "*", allowedHeaders = "*")
@RestController
@RequestMapping("/application")
public class AppController
{
@PostMapping("/print")
public void print(@RequestBody String st)
{
System.out.println(st);
}
}
有任何想法嗎 ?
以下配置可能需要在后端完成。 將此代碼粘貼到您的 @configuration 類之一中。 例如 SecurityConfiguration.java 類。
@Bean
public FilterRegistrationBean corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("http://localhost:3000");
config.addAllowedHeader("*");
config.addAllowedMethod("*");
source.registerCorsConfiguration("/**", config);
FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
bean.setOrder(0);
return bean;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.