Javascript 如何调用与js文件位于同一文件夹中的php文件而不显式声明其url?
我有一个php文件,其中包含名为cityguide-api.php的api和一个名为functions.js的javascript文件,它们位于同一文件夹(js)中 我想从javascript文件夹中调用api函数,所以我写了: php: 但当我尝试执行时,我在控制台上得到一个未找到的错误:Javascript 如何调用与js文件位于同一文件夹中的php文件而不显式声明其url?,javascript,php,Javascript,Php,我有一个php文件,其中包含名为cityguide-api.php的api和一个名为functions.js的javascript文件,它们位于同一文件夹(js)中 我想从javascript文件夹中调用api函数,所以我写了: php: 但当我尝试执行时,我在控制台上得到一个未找到的错误: GET http://localhost/wordpress/wp-admin/cityguide-api.php?apifunction=getCities 404 (Not Found) 如何调用与j
GET http://localhost/wordpress/wp-admin/cityguide-api.php?apifunction=getCities 404 (Not Found)
如何调用与js文件位于同一文件夹中的php文件而不显式声明url?可执行文件(php或html)的路径是什么? 也许你应该放点像这样的东西
'"./../cityguide-api.php?apifunction=getCities"'
而不是“cityguide api.php?apiffunction=getCities”?您不能。JavaScript文件不知道其目录,当您将其包含在html页面中时,当前目录将成为html文件的路径 您可以在html文件中声明php路径,因为它可以找到php文件的真实路径。在关闭
标签之前,将其放入:
<script>
var cityguide_api_url = '/your_dir/cityguide-api.php';
</script>
问题是“当前工作目录”不是相对于javascript文件,而是相对于加载javascript文件的html页面 例如,您有两个页面:
dir/page1.html
和otherdir/page2.html
,在这两个文件中加载相同的javascript,并从javascript调用脚本,例如$.get('script.php')
,然后在firest实例中,它将尝试加载dir/script.php
,在第二个实例中,它将尝试加载otherdir/script.php
所以基本上你想做的事是做不到的。但是您可以在javascript中设置一个基本url,并将其用作前缀。举例如下:
var baseURL = '/directory/to/my/app/';
// further down, when you need it
$.getJSON(baseURL + 'api/cityguide-api.php');
尝试使用./cityguide api.php?apiffunction=getCitiesI尝试过,也是同样的问题
GEThttp://localhost/wordpress/wp-admin/cityguide-api.php?apifunction=getCities 404(未找到)
那么您的文件与scriptno不在同一目录中,它只是向上移动一个文件夹http://localhost/wordpress/cityguide-api.php?apifunction=getCities
没有wp管理员
<script>
var cityguide_api_url = '/your_dir/cityguide-api.php';
</script>
jQuery.getJSON( cityguide_api_url, { 'apifunction': 'getCities' });
var baseURL = '/directory/to/my/app/';
// further down, when you need it
$.getJSON(baseURL + 'api/cityguide-api.php');