Ajax调用拉随机html

时间:2014-09-02 15:40:38

标签: javascript php jquery html ajax

我遇到的问题似乎无法解决。首先是第一件事。我用Uache和php5在Ubuntu 14.04上运行它。我正在使用我最初认为是问题的netbeans IDE,但后来我直接从web root / var / www / html运行它。 php正在运行我已经测试过了。我可以从root运行html页面和php页面。我已经开发了一些已经使用这台计算机的应用程序一些使用非常先进的ajax来调用google apis。我不知道为什么突然间我无法进行最简单的ajax调用。无论如何问题是当我对a php文件进行ajax调用时没有任何反应。如果我在浏览器中检查页面,它会显示它引入了一堆随机的iframe。我之前从未使用过iframe。我真的希望我只是需要一套不同的眼睛而且它不是别的。

的index.html

<!DOCTYPE html>
<html>
<head>
    <title>Index HTML</title>
    <meta charset="UTF-8">

    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script>
        $(document).ready(function(){

            $.ajax({
                url: "getHTML.php",
                data: { "test": "testing"},
                type: "GET",
                dataType: "xml",
                statusCode: {
                    0: function () {
                        alert("Thank You");
                    },
                    200: function (html) {
                        $("#page").append(html);
                    }
                }

            });
        });
    </script>
</head>
<body>
    <div id="page">The Div</div>
</body>
</html>

getHTML.php

    <?php
       echo "Hello World";
    ?>

在mozilla firefox中运行之后,没有任何iframe被拉入。我只能假设它是一些带有铬的bug。现在回答这个问题:为什么我没有得到ajax电话的任何回复?

所以我现在收到来自我的ajax电话的回复。虽然方式更糟糕。我将$ .ajax更改为$ .post()然后更改为$ .get(),现在它在无限循环中反复返回index.html的副本。据我所知,$ .get / post采用的默认网址是当前网址。但我添加了getHTML.php作为url参数。所以我不知所措。如果我无法解决这个问题,我就无法完成任何工作。有人可以帮忙吗?

$(document).ready(function(){

    $.get("getHTML.php", function(data)
        $("body").append(data);
    });
}); 

2 个答案:

答案 0 :(得分:0)

最好将JSON用于这些请求:

$return_data = array();
if (condition){
   $return_data['status'] = 'success';
} else {
    $return_data['status'] = 'info';
}

echo json_encode($return_data);
exit();

请记住指定返回数据类型:

function send() {
var data = $('#signup_form').serialize();
    $.ajax({
        type: "POST",
        url: "signup_process.php",
        data: data,
        dataType: 'json', 
        success: function (data) {
        alert(data.status);
            if (data.status == 'success') {
                // everything went alright, submit
                $('#signup_form').submit();
            } else if (data.status == 'info')
            {
                console.log(data.status);
                $("label#email_error").show(); 
                return false; 
            }
        }
    });
    return false;
};

答案 1 :(得分:0)

好的,这个问题的解决方案与任何编程无关。对于iframe,这是一个奇怪的谷歌浏览器问题,幸运的是,它不会影响视觉效果,因为没有任何显示。至于ajax问题,我做得对(在不同的计算机上测试)但Apache2服务器没有响应ajax请求。搜索日志文件需要一些时间才能找到合适的解决方案。