在开发中,我创建了一个在开发中工作的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;
}
答案 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"