现在是另一个非常简单的问题的时候了,我找不到一个优雅的解决方案。基本上,我有一个使用 jQuery Ajax 调用的应用程序。在此调用中,您必须为所调用的服务指定 URL 路径。在本例中,我需要从应用程序中的多个文件调用此 JavaScript 函数,并且这些文件位于文件夹结构的不同级别。
问题是,如何优雅地处理这种情况,以便可以从应用程序中的任何位置调用 JS 函数。这是我的限制:
1) 我正在 Asp.Net 4.0 上运行。 2)我当前的环境有本地、开发、测试和生产环境(硬编码 URL 路径不起作用)。
代码片段:
function MakeTheCall() {
$.ajax({
type: "POST",
url: "Services/FileName.asmx/Handler", //Path in Question
data: "",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result) {
},
error: function(xmlHttpRequest, status, err) {
}
});
}
我希望能够从不同目录级别的文件调用此函数(位于外部 JavaScript 文件中),例如:
1) http://SomeDomain.com/SomeDir/CallingFile.aspx 2) http://SomeDomain.com/CallingFile.aspx
有什么建议吗?我可以想到几种不同的场景来实现这一目标,但大多数都围绕创建 JavaScript 变量并在 C# 中设置其值。希望有更好的方法吗?
谢谢!
最佳答案
您是否尝试过url:“/Services/FileName.asmx/Handler”
?
编辑:上述内容的适用性取决于您的“服务”目录是否始终位于与域名相关的同一级别。如果您将整个应用程序部署在不同的路径级别下,那么您需要使用
// in code-behind file
string rootURL = HttpContext.Current.Request.Url.GetLeftPart(System.UriPartial.Authority) +
"/" + HttpContext.Current.Request.ApplicationPath + "/";
// in .aspx
url: <%Response.Write(rootURL)%> + "Services/FileName.asmx/Handler"
关于javascript - 在不同目录级别访问时,jQuery Ajax Url 路径会中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3942910/