在 Spring Boot 应用程序中从 Angular JS 调用 Rest Services 时出错
Posted
技术标签:
【中文标题】在 Spring Boot 应用程序中从 Angular JS 调用 Rest Services 时出错【英文标题】:Error in calling Rest Services from Angular JS in a Spring Boot application 【发布时间】:2019-06-17 21:36:49 【问题描述】:Spring Boot 应用程序在后端托管 REST 服务,在前端托管 Angular。 我正在从 UI 调用 REST。
我的代码
$http.get(urls.USER_SERVICE_API)
.then(
function (response)
console.log('Fetched successfully all users');
$localStorage.users = response.data;
deferred.resolve(response);
,
function (errResponse)
console.error('Error while loading users');
deferred.reject(errResponse);
);
app.constant('urls',
BASE: '<a class="vglnk" href="http://localhost:8081/SpringBootCRUDApp" rel="nofollow"><span>http</span><span>://</span><span>localhost</span><span>:</span><span>8081</span><span>/</span><span>SpringBootCRUDApp</span></a>',
USER_SERVICE_API : '<a class="vglnk" href="http://localhost:8081/SpringBootCRUDApp/api/user/" rel="nofollow"><span>http</span><span>://</span><span>localhost</span><span>:</span><span>8081</span><span>/</span><span>SpringBootCRUDApp</span><span>/</span><span>api</span><span>/</span><span>user</span><span>/</span></a>'
);
谷歌浏览器的错误调试如下:
angular.min.js:103 GET http://localhost:8081/SpringBootCRUDApp/%3Ca%20class=%22vglnk%22%20href=%22http://localhost:8080/SpringBootCRUDApp/api/user/%22%20rel=%22nofollow%22%3E%3Cspan%3Ehttp%3C/span%3E%3Cspan%3E://%3C/span%3E%3Cspan%3Elocalhost%3C/span%3E%3Cspan%3E:%3C/span%3E%3Cspan%3E8080%3C/span%3E%3Cspan%3E/%3C/span%3E%3Cspan%3ESpringBootCRUDApp%3C/span%3E%3Cspan%3E/%3C/span%3E%3Cspan%3Eapi%3C/span%3E%3Cspan%3E/%3C/span%3E%3Cspan%3Euser%3C/span%3E%3Cspan%3E/%3C/span%3E%3C/a%3E 404
当从 POSTMAN 调用 REST 时,它是成功的。因此,从 UI 调用时会出现问题。请帮助我找出我在 UI 休息调用部分做错了什么。
Complete REST URL is ::
http://localhost:8081/SpringBootCRUDApp/api/user/
请帮忙!
【问题讨论】:
老兄... USER_SERVICE_API 是'<a class="vglnk" href="http://localhost:8081/SpringBootCRUDApp/api/user/" rel="nofollow"><span>http</span><span>://</span><span>localhost</span><span>:</span><span>8081</span><span>/</span><span>SpringBootCRUDApp</span><span>/</span><span>api</span><span>/</span><span>user</span><span>/</span></a>
,而不是您所期望的http://localhost:8081/SpringBootCRUDApp/api/user/
....
【参考方案1】:
您的 app.constants 中有错误的 URL。用 REST URL 替换它应该会给你想要的结果。
USER_SERVICE_API: '@987654321@'
您当前指定的网址中有很多未知标签。
【讨论】:
是的。我已更正 URL 并删除了所有不必要的标签。它现在工作。谢谢。 app.constant('urls', BASE: 'localhost:8081/SpringBootCRUDApp', USER_SERVICE_API : 'localhost:8081/SpringBootCRUDApp/api/user' );以上是关于在 Spring Boot 应用程序中从 Angular JS 调用 Rest Services 时出错的主要内容,如果未能解决你的问题,请参考以下文章
在 Spring Boot 中从 JWT 安全检查中排除 URL
在 Spring Boot 中从命令行设置活动配置文件和配置位置
如何在我的 Spring Boot 应用程序中从 AWS 访问环境变量
在 CircleCi 中从 Spring Boot 访问 PostgreSQL 9.6