如何用IntelliJ Spring Boot+VS Code JS(AJAX)开发简单WebApp及解决请求失败问题
你现在网络面板里完全没有发起/greeting的请求,优先排查第一个问题:
- 检查
hello.js是否和index.html放在同一个目录下,你当前是直接打开本地html文件,相对路径是基于html文件所在文件夹的,如果hello.js存放位置不对,浏览器找不到就不会执行里面的逻辑 - 可以在
hello.js的第一行添加console.log('js已加载'),刷新页面后看控制台有没有对应输出,确认js的执行状态
如果确认js没有加载,调整文件路径到同一目录即可解决请求不发起的问题。
如果js加载正常但还是没有返回,那就是跨域问题:你是通过file://协议打开的本地页面,和后端服务http://localhost:8080不属于同域,浏览器会拦截跨域请求,你之前省略了CORS配置所以请求会失败。你可以在GreetingController类上添加@CrossOrigin(origins = "*")注解临时放开跨域限制,适配本地调试场景:
@RestController @CrossOrigin(origins = "*") public class GreetingController { // 原有代码保持不变 }
另外也可以直接把index.html和hello.js放到Spring Boot项目的resources/static文件夹下,启动服务后直接访问http://localhost:8080/index.html,此时页面和接口同域,不需要额外配置跨域也能正常运行。
内容的提问来源于stack exchange,提问作者Luk
相关产品推荐
相关产品推荐

