0

我用一些同样简单的 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>

这是 PHP 页面的内容 点击这里查看实时 PHP 页面

<?php
$email = $_GET['email'];
echo "Hello World!";
?>

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

4

2 回答 2

2

正如上面所建议的,AJAX 请求通常只有在调用者和被调用者都在同一个域上时才会起作用,您必须确保包含 javascript 的 html 代码位于同一域http://www.convolutedconstruct.com .

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

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

见:http ://enable-cors.org/

于 2012-08-05T18:06:52.917 回答
1

我不喜欢使用 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 源代码- http://code.jquery.com/jquery-1.7.2.min.js

这些是 ajax 中最常用的组件。

如果您愿意,我很乐意为您提供更多帮助。

如果您想了解更多信息,请查看相关文档:http ://api.jquery.com/jQuery.ajax/

于 2012-08-05T18:14:14.827 回答