0

我们使用 AJAX 从各种子文件夹调用 WCF 服务。所以 DOM OBJECT window.location.HREF 的 url 将是:

http://localhost:80/myVirtualDirectory/Reporting/reporting.aspx

或者

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)

4

2 回答 2

0

您可以尝试<base>在 HTML 上使用标签:

<head>
  <base href="http://localhost:80/myVirtualDirectory/">
</head>
于 2013-11-13T22:12:59.693 回答
0

您也许可以使用 servletContext.getContextPath(): http ://docs.oracle.com/cd/E17802_01/products/products/servlet/2.5/docs/servlet-2_5-mr2/javax/servlet/ServletContext.html#获取上下文路径()

于 2013-11-13T22:14:30.563 回答