【问题标题】:Angular 4 - Post request with Map not workingAngular 4 - 使用地图发布请求不起作用
【发布时间】:2017-12-02 00:28:24
【问题描述】:

我正在尝试将地图数据从 Angular 4 应用程序发布到 Spring Boot 服务器,但它无法正常工作,有人可以帮忙吗?

服务-->

  getmapdata(): Observable<ITinyMCEData[]> {
    let headers = new Headers({ 'Content-Type': 'application/json' });
    let options = new RequestOptions({ headers: headers });

    let data = new Map<number, string>();
    data.set(1, 'aa');
    data.set(2, 'bb');
    data.set(3, 'cc');

    console.log('map value == ' + data.get(1));

    return this._http.post(this._testmapurl, data, options)
      .map((response: Response) => <ITinyMCEData[]> response.json())
      .do(data => console.log(JSON.stringify(data)));
  }

chrome 浏览器不显示地图数据:

Request Payload
{}
No Properties

服务器正在获取空白数据:

    @RequestMapping(value = "/testmap", method =  RequestMethod.POST)
public ResponseEntity<User> getMapData(@RequestBody Map<Integer, String> data) {
    System.out.println("Data = " + data); --> display blank
    Iterator entries = data.entrySet().iterator();
    while (entries.hasNext()) {
        Map.Entry entry = (Map.Entry) entries.next();
        Integer key = (Integer)entry.getKey();
        Integer value = (Integer)entry.getValue();
        System.out.println("Key == " + key + " value == + " + value);
    }

    User user = new User();
    return new ResponseEntity<User>(user, HttpStatus.OK);
}

【问题讨论】:

    标签: angular spring-boot


    【解决方案1】:

    我找到了解决问题的方法。地图类型仅在 ES6 中受支持,而且我的浏览器似乎不支持 ES6。所以我将我的地图实现替换为 让地图 = {};然后填充值。 在服务器上,我创建了一个包含地图的类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-01
      • 2017-05-25
      • 1970-01-01
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多