PHP json / ajax无法在远程主机上运行

时间:2012-07-13 10:32:03

标签: php ajax json

我已经在我的本地计算机上开发了一个网站并且工作正常,但在将其上传到我的远程主机后,ajax / json调用无法运行。

我已经检查过重定向运行之前写的任何html,我能找到的唯一内容就是我回显json_encode($ return)。

这是问题吗?如果有的话,有谁知道如何解决这个问题。使用回声的替代方案可能??

感谢

下面的代码标有关于我认为问题可能在哪里的标签......

<script type="text/javascript">

$(document).ready( function() {
    $("#addStory input[type=submit]").click(function(e) {
        e.preventDefault();
        $.post('editor.php', $("#addStory").serialize(), function(result) {
            alert(result.adminList);
        }, "json");
    });
});

</script>



<form name="addStory" action="" method="post" id="addStory">
    <input type="text" id="test_text" name="test_text" />
    <input type="submit" value="Submit" />
</form>

这是editor.php ......

<?php

header('application/json');

$return = array();
$return['adminList'] = "Hello World!";
echo json_encode($return);

?>

“Hello World”警报不会发生......

1 个答案:

答案 0 :(得分:2)

您遇到的一个问题是在第一个SQL查询的输出之后放置了第二个header('application/json')。仅当$row['column_name'] == 0为真时才会出现这种情况。

如果它总是要返回json,那么只需将其设置在php代码的顶部,以避免以后混淆。

<?php
    header('application/json');

    //all your sql etc here

?>

我在讨论中也注意到你的标题实际上是不正确的。它应该是

header('Content-type: application/json');

删除它也会有用,但这可能是一个坏主意,因为这样做的目的是告诉收件人期望什么类型的数据。

另一点是你当前的ajax应该真正利用jQuery中的getJSON()函数,它会自动返回一个json对象。

$.getJSON('example.php', function(data) {
    //use data as a json object
}); 
相关问题