0

これは私が非常に困惑していることであり、ここでうまく説明できることを願っています。

c:/rootFolder/common/js/jsfile.jsにあるjsファイルがあります。このファイルでは、rootFolderにあるupdate.aspxというファイルを次のように呼び出すAJAX関数を使用しています。

...
...
httprequest.open("GET", "update.aspx", true);
...

この関数を呼び出すフォルダーの多くのレベルに多くのファイルがあります。ファイルc:/rootFolder/abc/abc.aspxがこの関数を呼び出す場合、上記のAJAXは次のようになります。

httprequest.open("GET", "../update.aspx", true);

したがって、パスを比較的簡単に任意のaspxから関数を呼び出すことができるようにする方法が必要です。このプロジェクトでもCookieなしのセッションを使用しているため、URLは次のようになります。

http:// localhost / S(abssadasdadd .. ..

4

1 に答える 1

0

しばらく検索した後、htmlまたはサーバーがベースとして見ているものがあるはずだと思うようになりました。したがって、ページの上部、特に HEAD タグに base タグを追加することで問題を解決しました。

<base href="www.abc.com" />

ただし、URL にセッション ID を配置する Cookie のないセッションを使用しています。それをベースに追加するにはどうすればよいですか (そうしないと、まだ機能しません)。次の簡単な答え:

string baseurl=  "http://" + servername + "/(S(" + HttpContext.Current.Session.SessionID + "))";

マスター ファイルがある場合は、頭にベースを配置できます。

<base href="<%=baseurl%>" />

これらが整っていれば、css および js ファイルを簡単に呼び出すことができます。

<link type="text/css" href="common/css/style.css" rel="stylesheet" />
<script type="text/javascript" src="common/js/jscript.js"></script>
于 2012-09-27T02:23:58.570 に答える