休息请求以“0”结尾/"适用于chrome,而不是firefox

rest request ending by "/" works on chrome, not firefox

本文关键字:chrome 适用于 firefox quot 请求 结尾      更新时间:2023-09-26

我使用的是Angularjs Chrome 35.0和Firefox 30.0。我需要向API发出Rest请求。/的一些面漆如:http://mydomain.com/path/to/folder/

如果没有这个,它就不会工作/而且我没有API。

要做到这一点,我使用un-serviceusingresource:

this.folder = function(folderKey) {
        var methods = resource(url, null, {
            'create': {
                method: 'PUT',
                url: config.domain + folderPath + '''/'
            }
        });
        return methods;
    };

如果我只放/'/,angular在执行请求时不会保留结尾的/

'''/'是我找到的唯一保存它的方法

它在chrome中运行得很好,但在firefox中,它确实生成了这个显然不起作用的url:http://mydomain.com/path/to/folder%5C

在URL末尾放一个.可以避免后面的'被修剪。这是否能正常工作显然取决于服务器如何处理.,但如果您有一个可以做您想要的事情的服务器,那么它应该会有所帮助。

我同意上面的评论,即web服务不应该对url中的尾部斜杠敏感。

但是,如果你真的想关闭自动stripTrailingStrips行为,你可以通过这样的选项:

this.folder = function(folderKey) {
    var methods = resource(url, null, {
        'create': {
            method: 'PUT',
            url: config.domain + folderPath + '''/'
        }
    }, {
        stripTrailingSlashes: false
    });
    return methods;
};

编辑:此功能自angular v1.3.0beta版本6开始提供,该版本仍处于不稳定状态。

根据

从服务器获取数据的推荐方式

对于这种url,人们似乎建议使用$http而不是ressource。