对PHP页面的Ajax调用总是不返回任何内容,即使PHP页面回显某些内容

对PHP页面的Ajax调用总是不返回任何内容,即使PHP页面回显某些内容,php,javascript,ajax,Php,Javascript,Ajax,我用一些同样简单的AJAX调用了一个非常简单的PHP页面,但是调用总是不返回任何内容,即使PHP很好。也就是说,您可以转到PHP页面的URL,看到它回显“Hello World”,但当用JS调用它时,它什么也不返回 下面是带有Javascript的HTML页面: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <

我用一些同样简单的AJAX调用了一个非常简单的PHP页面,但是调用总是不返回任何内容,即使PHP很好。也就是说,您可以转到PHP页面的URL,看到它回显“Hello World”,但当用JS调用它时,它什么也不返回

下面是带有Javascript的HTML页面:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Title of the document</title>
</head>

<body>
The content of the document......<br />

Enter your email: <input id="email" type="text" />
<input type="button" onclick="setXMLHttpRequest()" value="Go!" />

<script type='text/javascript'/>

        var http;

        function setXMLHttpRequest()
        {
            if(window.XMLHttpRequest)
                http = new XMLHttpRequest();
            else if(window.ActiveXObject)
                http = new ActiveXObject("Microsoft.XMLHTTP");

                url = "http://www.convolutedconstruct.com /Ajax/checkemail.php?email=" + 
                                   document.getElementById('email').value;
                http.onreadystatechange = display;
                http.open("GET", url, true);
                http.send(null);

        }

        function display()
        {
            if (http.readyState == 4)
            {   
                infostr = http.responseText;
                alert("From the PHP: " + infostr);
            }
        }
</script></body></html>

文件标题
文件的内容……
输入您的电子邮件: var-http; 函数setXMLHttpRequest() { if(window.XMLHttpRequest) http=newXMLHttpRequest(); else if(window.ActiveXObject) http=新的ActiveXObject(“Microsoft.XMLHTTP”); url=”http://www.convolutedconstruct.com /Ajax/checkemail.php?email=“+ document.getElementById('email').value; http.onreadystatechange=display; http.open(“GET”,url,true); http.send(空); } 函数显示() { 如果(http.readyState==4) { infostr=http.responseText; 警报(“来自PHP:+infostr); } }
下面是PHP页面的内容



为什么即使PHP页面正确地回显文本,也不会向JS返回任何内容?

如上所述,AJAX请求通常只在调用方和被调用方位于同一域时才起作用,您必须确保包含javascript的html代码位于同一域中

如果不是这样,您可以使用CORS,通过在php输出中发送此标题,允许ajax接收来自php页面的输入

<?php
header("Access-Control-Allow-Origin: *");
//rest of your code
?>


请参阅:

如上所述,AJAX请求通常仅在调用方和被调用方都位于同一域时才起作用,您必须确保包含javascript的html代码位于同一域中

如果不是这样,您可以使用CORS,通过在php输出中发送此标题,允许ajax接收来自php页面的输入

<?php
header("Access-Control-Allow-Origin: *");
//rest of your code
?>


请参阅:

我不喜欢使用XMLHTTP请求。相反,我使用jQuery的方法
$.ajax({})方法。它总是对我有用

$.ajax({
    type: "POST", // or 'GET'
    url: "your-url.php", // url that you are passing the data to
    data: {
        dataName: 'data to pass' // string, variable, object, array, etc
    },
    success: function(output) { // output is what the url is 'echoing' back to the jQuery
        // do something when the ajax method is complete.
    }
});
别忘了导入jQuery源代码-

这些是ajax中最常用的组件

如果你愿意,我很乐意再帮你一些忙


如果您想了解更多信息,请查看相关文档:

我不喜欢使用XMLHTTP请求。相反,我使用jQuery的方法
$.ajax({})方法。它总是对我有用

$.ajax({
    type: "POST", // or 'GET'
    url: "your-url.php", // url that you are passing the data to
    data: {
        dataName: 'data to pass' // string, variable, object, array, etc
    },
    success: function(output) { // output is what the url is 'echoing' back to the jQuery
        // do something when the ajax method is complete.
    }
});
别忘了导入jQuery源代码-

这些是ajax中最常用的组件

如果你愿意,我很乐意再帮你一些忙


如果您想了解更多信息,请查看其中的文档:

让我猜猜,@adnan说这不是AJAX的有效路径:
coulvoledconstruct.com/AJAX/checkemail.php?email=
如果您想要跨源代码,请尝试JSONPOr,而不是创建路径:
/AJAX/checkemail.php?email=
Oops!我会把它改成HTTP。这是SO帖子中的一个输入错误,还是您的实际代码?让我猜猜,@adnan说这不是AJAX的有效路径:
curveedconstruct.com/AJAX/checkemail.php?email=
如果您想要跨源代码,请尝试JSONPOr,而不是让您的路径:
/AJAX/checkemail.php?email=
Oops!我会把它改成HTTP。这是SO帖子中的一个输入错误,还是您的实际代码?我将把这两个页面放在服务器上的同一个目录中。在这种情况下,我应该使用相对路径还是使用http前缀?它们不一定需要在同一个目录中,但如果这有助于方便您,那么是的,这很好。您可以使用相对路径或绝对路径,只要域和方案相同,也不会中断ajax请求。因此,如果您的页面位于上,那么它应该能够从上的任何页面接收数据。我通常使用完整路径。我会将两个页面放在服务器上的同一目录中。在这种情况下,我应该使用相对路径还是使用http前缀?它们不一定需要在同一个目录中,但如果这有助于方便您,那么是的,这很好。您可以使用相对路径或绝对路径,只要域和方案相同,也不会中断ajax请求。因此,如果您的页面位于上,那么它应该能够从上的任何页面接收数据。我通常使用完整路径