我已经在我的本地计算机上开发了一个网站并且工作正常,但在将其上传到我的远程主机后,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”警报不会发生......
答案 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
});