我有一个带有jQuery函数和PHP脚本的文件夹"js"。在另一个文件夹中,我有HTML文件。这就是目前的结构:
/server/js/global.js
/server/js/script.php
/server/html/student.html
JavaScript代码是从HTML中调用的,它运行良好,但jQuerypost函数不调用PHP脚本。
如果我把HTML文件移到"js"文件夹中,它就可以完美地工作,并且PHP脚本被称为fine。
为什么会发生这种情况?
我的意思是:下一条路径上代表的路径是什么?
$.post('script.php',...);
它是从JavaScript文件夹还是从HTML文件夹调用文件?
问题可能是您正在调用的Javascript文件global.js使用的是所有Javascript文件使用的路径,该路径是相对于您当前查看的网页的路径。检查这是否是问题所在(比如相对路径),并确保路径是绝对的而不是相对的。例如,在global.js中,有一部分说:
$.post(
'script.php',
{ nameValue: name.value },
将其更改为:
$.post(
'/path/to/file/script.php',
{ nameValue: name.value },
举个例子,你的情况是这样的:
$.post(
'/server/js/script.php',
{ nameValue: name.value },
这样,它在任何情况下都可以调用global.js,因为绝对路径不取决于查看文件的位置。它还可以适应您放置html文件的任何位置,因此将来无需编辑文件(假设绝对路径始终在同一位置)。
这取决于如何从HTML文件中调用JS代码,但是试着使用JQuery这样的帖子:
$.post('../js/script.php', function(data) { } );