Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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 与php的ajax连接在子目录下不起作用_Javascript_Php_Ajax - Fatal编程技术网

Javascript 与php的ajax连接在子目录下不起作用

Javascript 与php的ajax连接在子目录下不起作用,javascript,php,ajax,Javascript,Php,Ajax,你好,我在目录中有一个javascript文件 root/assets/js/a.js 以及目录中的一个php文件 root/php/foo.php 在a.js文件中,我试图使用ajax来连接foo.php。如果a foo.php位于根目录a.k.a root/foo.php 该函数工作正常,但当我将文件放在上面的目录中时,一切都不起作用。下面是与连接相关联的函数 if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome,

你好,我在目录中有一个javascript文件

root/assets/js/a.js

以及目录中的一个php文件

root/php/foo.php

在a.js文件中,我试图使用ajax来连接foo.php。如果a foo.php位于根目录a.k.a

root/foo.php 
该函数工作正常,但当我将文件放在上面的目录中时,一切都不起作用。下面是与连接相关联的函数

if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
           alert(xmlhttp.responseText);
        }
    }

    xmlhttp.open("GET","../../studentSignupPHP/test.php?q=" + str, true);
相对路径在

 xmlhttp.open(..)
对我来说似乎很好,所以我无法理解我做错了什么。你能帮我吗

foo.php

<?php echo "test"; ?>

使用对根路径的引用,而不是从js目录进行遍历,如下所示

/php/foo.php

有关原因,请参见上面charlietfl的评论

编辑:使用@charlietfl的注释更新


“路径取决于您在浏览器中加载的页面,而不是js文件的存储位置。打开浏览器开发工具并查看网络选项卡,将看到浏览器试图用于ajax调用的路径”

您将问题标记为
jquery
。为什么不使用jQuery的ajax实现?@mightyport-oops这是个错误。我不知道这个函数到jquery的“翻译”。我是网络设计新手。我将删除jquery的标记以避免误解。路径取决于您在浏览器中加载的页面,而不是js文件的存储位置。打开浏览器开发工具并查看网络选项卡,将看到浏览器尝试用于ajax的路径call@JmRag在jquery中,它只是
$.ajax({…选项…})。超级简单和可靠。路径设置不正确,请为foo.phpyes提供正确的路径,它可以正常工作!我从上面的评论中理解了原因。你必须编辑你的帖子并把它放在那里crediting@charlietfl。在评论上添加注释来解释是不好的