jquery GET для размещения в виртуальном каталоге и за балансировщиком нагрузки (mvc web api)

0

У меня есть одна и та же проблема, описанная здесь: Javascript в Virtual Directory не знает о Virtual Directory

Но предлагаемые решения по использованию скрытого поля или созданного на стороне сервера объекта json settings не работают для меня, так как серверная сторона фактически не знает собственный URL-адрес. Если я делаю Url.Content("~"), я просто получаю ip одной из машин, на которой работает код, поэтому я никогда не могу использовать этот путь в javascript. Он также возвращает URL-адрес http вместо внешнего https-url.

Точнее: https://myhost.com/myapp//* здесь, где работает мой код */

Я мог бы использовать относительные пути в jquery (например: $.get('api/controller')), но приложение не работает, если пользователь использует " https://myhost.com/myapp " (так что никакой конечной косой черты). (ну, собственно, страница загружается, но обратные вызовы терпят неудачу из-за отсутствия конечной косой черты)

Я мог бы использовать абсолютные URL-адреса, но серверный код не знает фактического URL-адреса...

Есть ли способ, чтобы javascript возвращал полный абсолютный путь С виртуальным каталогом С конечной косой чертой (хотя в адресе браузера нет конечной косой черты)?

Спасибо

Теги:
asp.net-mvc
asp.net-web-api

1 ответ

3

Хорошо понял. Теперь это комбо из двух более ранних ответов, приведенных в других смежных вопросах:

Я продолжаю использовать относительные пути, и я также использую настройки json, которые будут содержать относительный путь, содержащий виртуальный каталог:

<script type="text/javascript">
    var settings = {
        baseUrl: '@Url.Content("~")'
    };
</script>

Это позволит решить следующее:

<script type="text/javascript">
    var settings = {
        baseUrl: '/MyApp/' /* <-- always has trailing slash */
    };
</script>

И я просто должен префикс для каждой операции jQuery $.get.

Если у кого-то есть что-то лучше, я очень открыт для предложений!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню