如何允许访问跨源请求??? (角,休息,春天)

时间:2018-01-10 09:30:58

标签: spring angular rest

我需要一些帮助

我正在使用带有使用spring框架的restful web服务的angular开发应用程序

从RESTController

调用此方法后

 @CrossOrigin(origins = "http://localhost:4200")
 @RequestMapping(value="/search",method=RequestMethod.GET)
 public Page<Bien> chercher(
        @RequestParam(name="mc",defaultValue="") String mc,
        @RequestParam(name="size",defaultValue="0") int page,
        @RequestParam(name="page",defaultValue="5") int size) {
    return bienRepository.chercher("%"+mc+"%",new PageRequest(page,size));
}

使用

 this.http.get('url:http://localhost:8080/searchmc=A').
 map(resp=>resp.json()).
 subscribe(data=>{this.pageBien=data;},err=>{console.log(err) } );

我遇到了这个问题

无法加载网址:http://localhost:8080/search?mc=A:仅支持协议方案的交叉原始请求:http,数据,Chrome,Chrome扩展程序,https。

请提出任何建议!

1 个答案:

答案 0 :(得分:1)

来自客户端的get请求似乎不正确。 正确的应该是:

this.http.get('http://localhost:8080/search?mc=A').map(resp=>resp.json()).
subscribe(data=>{this.pageBien=data;},err=>{console.log(err) } );

发生了什么变化:

  1. 在get call中删除“url”前缀
  2. 您将请求参数包含在?之后的网址中,因此http://localhost:8080/search?mc=A(对于每个下一个请求参数,使用&amp;示例http://localhost:8080/search?mc=A&size=5