Relative Path Problems in Javascript Ajax call

Мы используем простой главный minor.julian_date синтаксис.

, Где;

  • главный - Первый выпуск равняется 1 и затем когда мы представляем главные новые возможности или изменения, настолько значительные, они не назад совместимое увеличение это число.
  • незначительный - основные эпохальные выпуски. Для каждой сборки, продвинутой производством это число увеличения.
  • julian_date - Юлианская дата сборка была продвинута к QA.

Пример первого выпуска, продвинутого к QA на 1/15,-> 1.0.015
, Пример первого выпуска, продвинутого к Производству на 3/4,-> 1.1.063

Это не прекрасно, но удобно, поскольку мы продвигаем сборки к QA около ежедневной газеты.

17
задан Alessio 12 July 2016 в 14:05
поделиться

2 ответа

URL

var url = "/Shared/AskReason.ashx?REASON=" + reason; 

Ищет файл в корневом каталоге [так как это абсолютный путь], эффективно

http://localhost/Shared/AskReason.ashx

Вы должны включить имя виртуального каталог ИЛИ определите подходящую структуру:

Запуск без / даст вам относительный путь ... если вам нужно перемещаться по каталогам, используйте стиль примечаний ../Shared/ или, наконец, используйте команду Каталог серверов для определите свой текущий путь.

2
ответ дан 30 November 2019 в 12:06
поделиться

У меня есть та же проблема с ASP.NET, MVC с моим Ajax обращаются к отдельному .js файлу. Это - то, как это смотрит:

 return $.ajax({
            type: "POST",
            url: '/Dashboard/Execute',
            contentType: "application/json; charset=utf-8",
            data: filter,
            dataType: "json",
        });

Это хорошо работает на моем локальном, конечно. Но при развертывании на подкаталоге в IIS, например,

wwwroot/appsite/subdomainfolder/

Это инициирует 404 Не Найденный , поскольку он не присоединил subdomainfolder на URL.

, Если я удаляю

" / "

в начале URL, он генерирует его как этот:

http://localhost/subdomainfolder/Dashboard/Dashboard/ExecuteReader

, Который снова инициирует 404 Не Найденная проблема.

, Таким образом, вот эти две опции для моего обходного решения:

Удаляют обратную косую черту и удаляют название контроллера (Панель инструментов на этом случае):

return $.ajax({
            type: "POST",
            url: '/Execute',
            contentType: "application/json; charset=utf-8",
            data: filter,
            dataType: "json",
        });

Или, останьтесь, как это, просто добавьте двойной период в начале URL:

return $.ajax({
            type: "POST",
            url: '../Dashboard/Execute',
            contentType: "application/json; charset=utf-8",
            data: filter,
            dataType: "json",
        });
1
ответ дан 30 November 2019 в 12:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: