我正在使用基本的jquery
ajax
电话。
我调用php
文件,没有输入参数,选项数据类型设置为json
。
我希望服务器解析查询php
数据库中的表的mysql
,将其转换为array
,最后将encode
转换为json
和return
。
我尝试通过复制php
字段中的url
文件address
从浏览器进行测试调用,并显示它有效,因为我可以看到一个包含所有内容的空白页面json
格式化表格的行。
相反,在使用javascript
代码进行调用时,$.ajax
调用失败并显示错误
Requested JSON parse failed
这意味着ajax
调用期待json
(因为我将option数据类型设置为),但是接收了另一种格式。
所以我尝试从调用中删除数据类型选项,并且看到我得到了回复success
,但是我从php
文件收到了什么?
嗯,这是文件中的整个代码,就像服务器没有解析它一样,因为它认为它是纯文本。
有没有办法摆脱这个问题?感谢。
答案 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下一切正常。 抱歉,慢慢来....