AJAX-запросы в ASP.NET Core - PullRequest
       7

AJAX-запросы в ASP.NET Core

0 голосов
/ 11 января 2019

Мне нужно отправлять запросы обратно на мой сервер в моем веб-приложении, например, пользователь щелкает элемент таблицы и загружает дополнительные данные в другую часть этой же страницы.

До сих пор я делал это с помощью запросов AJAX, которые работали нормально (хотя, если это не лучший способ, я бы приветствовал любые альтернативные предложения).

Проблема, которую я обнаружил, заключается в том, что запросы больше не работали, когда я публиковал сайт в IIS. Просматривая его, я обнаружил, что в URL-адресе что-то отсутствует при вызове из IIS.

Например, в отладке (localhost) я делаю запрос следующим образом:

await $.ajax({
    type: 'GET',
    url: 'products?handler=productid=' + productId});

... где 'products' - это имя страницы, с которой я запросил, путь к которой localhost/products.

При размещении в IIS URL-адрес теперь равен localhost/mynewapp/products, поэтому базовый путь изменился, поэтому мои запросы не работают в IIS.

Я исправил это, добавив следующий метод JS:

function GetBaseUrl() {
    var url = window.location;

    return url.pathname;
}

… и затем изменить вызов AJAX на:

await $.ajax({
    type: 'GET',
    url: GetBaseUrl() + '?handler=productid=' + productId});

Это работает как в отладке, так и в IIS.

Мне это кажется немного хакерским, и поэтому мой вопрос: как правильно справиться с этой ситуацией?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...