Ajax Post中的URL路径名问题

时间:2011-05-31 13:56:27

标签: asp.net-mvc ajax

在开发中,我创建了一个在开发中工作的Ajax帖子。但是当我把它放在测试服务器上时它不起作用,因为IIS已经为应用程序分配了一个子文件夹,这在我的开发环境中是缺失的。 我找到了解决方法(见下文),但我是第一个承认这不应该是解决方案的人,因为我必须记得每次进行Ajax调用时都要为url调用一个函数。 肯定有更好的办法。 但是代码会告诉你我正在修复的内容;

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 个答案:

答案 0 :(得分:1)

如果你的.aspx文件中包含你的javascript,你可以生成这样的url:

function OperationsManagerFlagClickFunc(userId) {
    $.ajax({
        url: "<%= Url.Action("UpdateOperationsManagerFlag","User") %>",
        type: "POST",
        data: { "userId": userId },
        success: function (data) { }
    });
}

答案 1 :(得分:0)

为什么不单独定义一个变量,例如siteUrl,它将保存您网站的网址,并在两台服务器上使用不同的值? 然后就做:

url: siteUrl + "/Users/UpdateOperationsManagerFlag"