使用JQuery为每个传出的Ajax请求附加尾部斜杠

时间:2014-10-14 18:29:08

标签: jquery ajax django

Django偏好(要求)默认情况下所有网址都有一个尾部斜杠。

如何配置jQuery以自动为我正在使用AJAX调用的每个url添加斜杠?

1 个答案:

答案 0 :(得分:1)

可以通过beforeSend修改每个传出的ajax请求,如下所示:

$.ajaxSetup({
    beforeSend: function(xhr, settings) {
        settings.url = ensureTrailingSlash(url);
    }
});

关于ensureTrailingSlash的实现,这是一个示例实现(我还没有测试过边缘情况):

var maybeAppendSlash = function (url) {
    if (url[url.length-1] !== "/") {
        url += '/';
    }
    return url;
};

var ensureTrailingSlash = function (url) {
    var parser = document.createElement('a');
    parser.href = url;
    parser.pathname = maybeAppendSlash(parser.pathname);
    return parser.href;
};

在这个仓库中可以找到更完整的版本:

https://github.com/ustun/ensure-trailing-slash-for-jquery-ajax/blob/master/ensure_slash.js