Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何调用与js文件位于同一文件夹中的php文件而不显式声明其url?_Javascript_Php - Fatal编程技术网

Javascript 如何调用与js文件位于同一文件夹中的php文件而不显式声明其url?

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

我有一个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)

如何调用与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');