3

PHP および JavaScript ファイルを含むスクリプトがあります。これらのファイルはすべてルート フォルダにあります/myfolder

私のウェブサイトに含める必要があるスクリプトが であるとしましょう/myfolder/script.js。問題は、script.jsへの ajax 呼び出しが../myfolder/ajax.phpあることです。これは、パスがスクリプトが含まれているページに相対的であるため、このようなものがあると機能しません。ページ/a/b/page.php:

<script src="../../myfolder/script.js><script>これは../myfolder/ajax.php、AJAX 呼び出し (この場合は/a/myfolder/ajax.php.

が含まれている場所に関係なく、常に適切なファイルを指すように AJAX 呼び出し URL を書き換えるにはどうすればよいscript.jsですか?

ROOT
|---myfolder
    |--script.js
    |--ajax.php
|--page1.php
|--subfolder
   |--page2.php
   |--subfolder
      |--page3.php
4

1 に答える 1

7
/**
 * returns the current context path,
 * ex: http://localhost:8080/MyApp/Controller returns /MyApp/
 * ex: http://localhost:8080/MyApp returns /MyApp/
 * ex: https://www.example.co.za/ returns /
 */
function getContextPath() {
    var ctx = window.location.pathname,
        path = '/' !== ctx ? ctx.substring(0, ctx.indexOf('/', 1) + 1) : ctx;
    return path + (/\/$/.test(path) ? '' : '/');
}

のような URL でhttp://www.example.com/ajax:

getContextPath() + 'myfolder/ajax.php'

戻ります/ajax/myfolder/ajax.php


同様に、次のような URL でhttp://www.example.com/:

getContextPath() + 'myfolder/ajax.php'

戻ります/myfolder/ajax.php


最後に次のような URL でhttp://www.example.com/myfolder/a/b/c/d/e/f/g/:

getContextPath() + 'myfolder/ajax.php'

戻ります/myfolder/ajax.php

于 2013-02-05T13:01:46.820 に答える