gpt4 book ai didi

angularjs - angular-resource.js 编码UriSegment 问题

转载 作者:行者123 更新时间:2023-12-02 23:50:02 34 4
gpt4 key购买 nike

当资源 uri 有多个子路径时,我在查询静态资源时遇到问题:

示例:

.factory('SomeFactory', function ($resource) {
return $resource('/path/subPath/otherSubPath/:id', {}, {
show: { method: 'GET', params: { id: '@id' } }
})
}) ;

当我在 Controller 中调用 SomeFactory.show 时,出现错误服务器响应状态为 400(错误请求)这是因为浏览器正在寻找 uri :

http://server/path/subPath%2FotherSubPat/id

请注意 %2F 替换了 uri 中的/(斜杠),我在 javascript 中尝试了很多技巧来实现此目的;但唯一的解决方案是添加以下最后一行replace(/%2F/gi, '/');在 angular-resource.js 的encodeUriSegment方法中。

请告诉我这种方法是否正确。

function encodeUriSegment(val) {
return encodeUriQuery(val, true).
replace(/%26/gi, '&').
replace(/%3D/gi, '=').
replace(/%2B/gi, '+').
replace(/%2F/gi, '/');
}

谢谢。

最佳答案

看来您已经遇到了在 github 上打开的这个问题:

https://github.com/angular/angular.js/issues/1388#issue-6979382

建议您采取的方法。就我而言,由于我遇到了与您相同的问题,我更喜欢拥有多个服务(每个子路径一个)而不是修改 angular-resource.js - 我更喜欢不修改核心lib 文件,因为任何更新都会删除这些更改。

希望 Angular 中添加一个用于设置 uri 编码的标志来解决这个问题。

关于angularjs - angular-resource.js 编码UriSegment 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20619770/

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