Относительный путь в Ajax работает по-разному в разных средах - PullRequest
1 голос
/ 16 мая 2019

Это сайт SpringBoot.URL-адрес html-страницы: http://xxxxx/trex/index/ И сегмент кода javascript на странице индекса, как показано ниже

$(function(){

jQuery.ajax({
    contentType:'application/json;charset=UTF-8',
    type: "POST",
    url: "getSignTypes",
    cache: false,
    dataType: "json",
    success:function(data){
            if(data !== 'NA'){
                console.log(data);
                $('#signType').combobox({
                    valueField:'id',
                    textField:'title',
                    editable:false,
                    data:data,
                    value:data[0].id
                });
            }
    },
    error:function(msg){
        console.log(msg)
    }
});
})

Вы можете видеть, что я использую относительный путь в параметре url этого запроса ajax.Я полагаю, поскольку это относительный URL-адрес, его следует преобразовать в http://xxxxx/trex/index/getSignTypes.. Я проверяю его на своем локальном компьютере, и да, он соответствует ожиданиям http://localhost:8088/trex/index/getSignTypes.

Но при развертываниив UAT я нахожу, что URL преобразуется в http://hswcfc -trainexp-web.uat.homecreditcfc.cn / trex / getSignTypes .Индексная часть исчезла.

Почему относительный путь в Ajax работает по-разному в разных средах?Код Ajax точно такой же.Любой ключ, который я могу проследить, чтобы найти разницу?Спасибо.

Я прошёл скриншот UAT здесь.enter image description here

1 Ответ

1 голос
/ 16 мая 2019

HTTP-URL состоит из нескольких частей: протокола, имени хоста, порта, имени пользователя, пароля, пути, строки запроса (?....) и фрагмента (#....).

Как подозревается, ваш URL-адрес путь оканчивается на / в dev, но не в UAT.Думайте об этом как о «каталогах»: /trex/index/ - это пустое имя файла в каталоге /trex/index, а /trex/index - это файл index в каталоге /trex.Веб-серверы часто обрабатывают два одинаково, а клиенты - нет: когда вы делаете относительный путь оттуда, вы получаете /trex/index/getSignTypes в первом случае, но /trex/getSignTypes во втором.

Этообычно исправляется путем создания правила перенаправления, чтобы вы никогда не могли случайно написать один и тот же URL-адрес двумя разными способами (например, путем перенаправления с /trex/index на /trex/index/).

...