Проблема с URL-адресом в Ajax Post - PullRequest
0 голосов
/ 31 мая 2011

В разработке я делаю пост Ajax, который работает в разработке. Однако, когда я помещаю его на тестовый сервер, он не работает, потому что IIS назначил приложению подпапку, а в моей среде разработки этого нет. Я нашел обходной путь (см. Ниже), но я первый, кто признал, что это не должно быть решением, так как я должен помнить, что нужно вызывать функцию для URL каждый раз, когда я выполняю Ajax-вызов. Должен быть лучший способ. Однако код покажет вам, что я исправляю;

function OperationsManagerFlagClickFunc(userId) {
    $.ajax({
        url: GetUrl("/Users/UpdateOperationsManagerFlag"),
        type: "POST",
        data: { "userId": userId },
        success: function (data) { }
    });
}

function GetUrl(path) {
    var pathArray = window.location.pathname.split('/');
    if (pathArray[1] === "ITOC")
        return "/ITOC" + path;
    else
        return path;
}

Ответы [ 2 ]

1 голос
/ 31 мая 2011

Если у вас есть свой javascript в файле .aspx, вы можете сгенерировать URL следующим образом:

function OperationsManagerFlagClickFunc(userId) {
    $.ajax({
        url: "<%= Url.Action("UpdateOperationsManagerFlag","User") %>",
        type: "POST",
        data: { "userId": userId },
        success: function (data) { }
    });
}
0 голосов
/ 31 мая 2011

Почему бы не задать отдельную переменную, например siteUrl, которая будет содержать URL вашего сайта с разными значениями на 2 серверах?Тогда просто сделайте:

url: siteUrl + "/Users/UpdateOperationsManagerFlag"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...