如何在春季启动中启用 CORS - 不起作用
2022-09-02 13:43:14
我正在尝试在我的Spring Boot应用程序中启用CORS,但它根本无法正常工作。
我试过
-
@CrossOrigin
注解 - 带弹簧靴和棱角的 CORS 不起作用
- 而这 https://spring.io/guides/gs/rest-service-cors/
我不知道目前如何解决此问题,也不知道CORS无法正常工作的问题。
我的代码
控制器
@RestController
public class DbController {
@Autowired
private IDAO conn;
@CrossOrigin
@GetMapping("/foo")
public List<Foo> getFoo() {
return conn.getFooFromDao();
}
}
道
@Repository
public class DaoImpl implements IDAO {
@Autowired
private JdbcTemplate temp;
public List<Foo> getFooFromDao() {
List<Foo> data = new ArrayList<>();
String sql = "SELECT fooName FROM BigFoo ORDER BY fooName ASC;";
data.addAll(temp.query(sql, new BeanPropertyRowMapper(BigFoo.class)));
return data;
}
}
预期:
我希望我的控制器可以通过任何方法从任何源/域访问。
实际值:
我的控制器无法从任何源/域访问。它给我的Angular前端一个错误:
编辑:我在前端的错误
从源“http://localhost:4200”访问“localhost:8080/foo”的XMLHttpRequest已被CORS策略阻止:跨域请求仅支持协议方案:http,data,chrome,chrome-extension,https。
第二次编辑:
这是我在Angular(前端)中的代码:
服务
getFoo() {
return this.http.get("localhost:8080/foo");
}
我正在使用从HttpClient
import { HttpClient } from "@angular/common/http";
我还通过将URL复制并粘贴到我的浏览器中来验证该URL在该服务方法中是否有效。它确实返回JSON,这省略了错误URL或拼写错误的可能性。