我们正在使用AJAX从各种子文件夹中调用WCF服务。 所以DOM OBJECT的窗口是window.location.HREF 将是:
http://localhost:80/myVirtualDirectory/Reporting/reporting.aspx
OR
http://localhost:80/myVirtualDirectory/Sales/sales.aspx
我的服务实际上位于:
http://localhost:80/myVirtualDirectory/
当我从“子文件夹”调用时,无法找到服务,或者我必须将* .svc文件放在父文件夹和所有子文件夹中。 因此,需要我所有的AJAX“url”以
开头http://localhost:80/myVirtualDirectory/
当我们将此应用程序部署到客户的网站时,我不知道myVirtualDirectory将会是什么。 我写了一个脚本块来推动它:
var urlBase = "http://localhost:80/myVirtualDirectory/"
C#中的代码就像这样(删节)
"var urlBase = '//'+window.location.host+" + Request.ApplicationName + " '/' ";
有更好的方法吗? 请记住,我们正在逐步摆脱ASPX,转而使用knockout.js来支持普通的旧HTML页面(POHP)
答案 0 :(得分:0)
您可以尝试在HTML上使用<base>
标记:
<head>
<base href="http://localhost:80/myVirtualDirectory/">
</head>
答案 1 :(得分:0)
您可以使用servletContext.getContextPath(): http://docs.oracle.com/cd/E17802_01/products/products/servlet/2.5/docs/servlet-2_5-mr2/javax/servlet/ServletContext.html#getContextPath()