服务器没有解析从jquery ajax调用的php文件

时间:2013-07-23 21:24:45

标签: php jquery ajax

我正在使用基本的jquery ajax电话。

我调用php文件,没有输入参数,选项数据类型设置为json

我希望服务器解析查询php数据库中的表的mysql,将其转换为array,最后将encode转换为jsonreturn

我尝试通过复制php字段中的url文件address从浏览器进行测试调用,并显示它有效,因为我可以看到一个包含所有内容的空白页面json格式化表格的行。

相反,在使用javascript代码进行调用时,$.ajax调用失败并显示错误

Requested JSON parse failed

这意味着ajax调用期待json(因为我将option数据类型设置为),但是接收了另一种格式。

所以我尝试从调用中删除数据类型选项,并且看到我得到了回复success,但是我从php文件收到了什么?

嗯,这是文件中的整个代码,就像服务器没有解析它一样,因为它认为它是纯文本。

有没有办法摆脱这个问题?感谢。

3 个答案:

答案 0 :(得分:2)

使用json数据发送内容标题

<?php
header('Content-Type: application/json');
echo json_encode($data);

答案 1 :(得分:1)

ajax函数需要一个JSON编码的文档,所以你必须发送一个带有响应的标题,说明响应包含JSON。像这样:

<?php
    header('Content-Type: application/json');
    // All your code here
    echo json_encode($someArray);
?>

答案 2 :(得分:0)

我是个白痴,我可能会回答我自己的问题,我正在从visual studio调试jquery,它会自动设置iis web服务器,它解释了为什么它会像文本文件一样处理php文件。显然在apache下一切正常。 抱歉,慢慢来....