gpt4 book ai didi

java - Spring RESTful Web 服务 + AngularJS HTTP 404 错误

转载 作者:行者123 更新时间:2023-12-01 13:23:59 24 4
gpt4 key购买 nike

我正在尝试在本地计算机上使用 Web 服务并使用 AngularJS $http。通过浏览器,一切正常,我收到正确的 JSON 响应。但是使用 AngularJS $http 我收到 404 错误,但是找到了处理程序并正在生成响应。

前端:

$http.get('http://localhost:8080/apartments.json').
success(function(data){
$scope.apartments = data;
}).
error(function(data, status){
alert("Error "+ status);
});

后端:

@Controller
public class ApartmentsController {

@RequestMapping(value = "/apartments", method = RequestMethod.GET)
public @ResponseBody List<ApartmentEntity> getAll(){
ApartmentEntity apartmentEntity = new ApartmentEntity();
apartmentEntity.setName("test");
apartmentEntity.setPrice(1000);
return Arrays.asList(apartmentEntity);
}
}

Servlet 已正确映射。

您能否提出问题所在?

最佳答案

问题是 Angular 默认情况下尝试使用 CORS因为这是从一台服务器加载的一个页面到另一台服务器中运行的 REST 服务的 ajax 请求尝试。

它尝试使用 CORS 的方式是发出带有默认 header 的 GET,该 header 会触发浏览器执行“飞行前”OPTIONS请求。

这个预检自动OPTIONS请求是为了让浏览器获取服务器支持的方法列表,这是CORS的第一步。

所以 404 来自这个 OPTIONS 请求。

查看此issue在 Angular 中,这个问题似乎在最近的版本中得到了修复,因为它引起了用户的很多问题。另请参阅original issue触发了修复。

对于本地开发,您始终可以将两个应用程序部署在同一服务器中,问题就解决了。

如果在生产中需要在单独的服务器上运行前端/后端,则可以通过 nginx/Apache 等通用前端服务器代理这些服务器,或者打开 CORS,请参阅 enable-cors.org .

关于java - Spring RESTful Web 服务 + AngularJS HTTP 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21886746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com