休息请求以" /&#34结尾;适用于chrome,而不是firefox

时间:2014-07-15 12:31:38

标签: javascript angularjs google-chrome rest firefox

我使用的是Angularjs Chrome 35.0和Firefox 30.0。 我需要向API发出Rest请求。 其中一些按/完成,例如:http://mydomain.com/path/to/folder/

如果没有这个/它将无法工作。我没有掌握API。

为此,我使用资源使用un service:

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

3 个答案:

答案 0 :(得分:1)

在网址末尾放置.可避免裁剪尾随\。这一般是否有效将显然取决于服务器如何处理.,但如果你有一台服务器可以做你想要的,那么它应该有所帮助。

答案 1 :(得分:0)

我同意上述评论,即网页服务不应对网址中的尾部斜杠敏感。

但是如果你真的想要关闭auto stripTrailingSlashes行为,你可以传递这样的选项:

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

编辑:此特征自角度v1.3.0-beta.6起可用,但仍处于不稳定状态。

答案 2 :(得分:0)

根据

Recommended way of getting data from the server

似乎人们建议使用$ http而不是ressource用于那种网址。