Cri*_*sty 3 javascript relative-path include-path
我有一个包含PHP和JavaScript文件的脚本.所有这些文件都在根文件夹中/myfolder.
让我说我必须在我的网站上包含的脚本是/myfolder/script.js,问题是script.js我有ajax调用../myfolder/ajax.php,因为路径将相对于页面包含脚本将无法工作,如果我有这样的东西页面/a/b/page.php:
<script src="../../myfolder/script.js><script>因为这将调用AJAX调用中所述的ajax方法../myfolder/ajax.php,在本例中是/a/myfolder/ajax.php.
如何重写AJAX调用URL,以便它始终指向正确的文件,无论script.js它包含在哪里?
ROOT
|---myfolder
|--script.js
|--ajax.php
|--page1.php
|--subfolder
|--page2.php
|--subfolder
|--page3.php
Run Code Online (Sandbox Code Playgroud)
/**
* 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) ? '' : '/');
}
Run Code Online (Sandbox Code Playgroud)
在如下的URL上http://www.example.com/ajax:
getContextPath() + 'myfolder/ajax.php'
Run Code Online (Sandbox Code Playgroud)
将返回 /ajax/myfolder/ajax.php
类似于以下网址http://www.example.com/:
getContextPath() + 'myfolder/ajax.php'
Run Code Online (Sandbox Code Playgroud)
将返回 /myfolder/ajax.php
最后在一个URL上http://www.example.com/myfolder/a/b/c/d/e/f/g/:
getContextPath() + 'myfolder/ajax.php'
Run Code Online (Sandbox Code Playgroud)
将返回 /myfolder/ajax.php
| 归档时间: |
|
| 查看次数: |
7302 次 |
| 最近记录: |