使用 AngularJS 将 URL 中的 RequestParams 传递给 Spring MVC 后端



我的Spring REST控制器上有一个URL映射,它期望URL有三个可选的请求参数。我在下面定义的方法中使用@RequestParam注释来定义三个可选参数。当我使用浏览器点击相同的URL时,URL工作正常。

问题是当我尝试使用我的 AngularJS 服务访问相同的 url 时。我过去曾与PathVariables合作过,但不确定如何将这些RequestParam变量传递到 URL 中。

角度服务:

$resource(configuration.get('wsUrlPrefix') + 'abc/xyz/:page/:size/:sortData', {}, serviceConfig)

网址原来是这样的:

http://localhost:8080/abc/xyz//10?sortdata=%7B%22orderType%22:null,%22oEDistrictNbr%22:null,%22orderNumber%22:null,%22mainLine%22:null%7D

并且后端无法识别它。

这是因为您的sortdata参数是一个对象,例如:

{ 
  orderType: null,
  eEDistrictNbr:null
  ..
}

因此,当它被编码时,它会变得像您的问题一样(转义字符等(

修复它的一种方法是确保参数始终是字符串或数字,方法是将对象解构为简单的基元,例如

$resource(configuration.get('wsUrlPrefix') + 'abc/xyz/:page/:size/:sortDataOrderType/:sortDataEDistricNr/...', {}, serviceConfig)

最新更新