【问题标题】:Passing RequestParams in the URL with AngularJS to Spring MVC backend使用 AngularJS 将 URL 中的 RequestParams 传递给 Spring MVC 后端
【发布时间】:2017-05-25 10:13:15
【问题描述】:

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

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

角度服务:

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

URL 原来是这样的:

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

后端无法识别。

【问题讨论】:

    标签: java angularjs spring


    【解决方案1】:

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

    { 
      orderType: null,
      eEDistrictNbr:null
      ..
    }
    

    所以当它被编码时,它会变成你的问题(转义字符等)

    解决它的一种方法是确保您的参数始终是字符串或数字,方法是将您的对象解构为简单的原语,例如

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

    【讨论】:

    • 好的,谢谢。但是为了传递 url 参数,我使用了 ?参数名称末尾的符号。谢谢。
    猜你喜欢
    • 2020-11-26
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    相关资源
    最近更新 更多