用jQuery的Ajax向PHP后台程序传数据,以json形式返回,IE、FF正常,Chrome出错

前台JS代码(已经引入jQuery库):$.ajax({type:"POST",url:"./showPath.php",cache:false,data:'nodeCa... 前台JS代码(已经引入jQuery库):
$.ajax({
type: "POST",
url: "./showPath.php",
cache: false,

data: 'nodeCampusId='+campusId, dataType: "json",
success: function (content) {
alert(content);
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest+" "+textStatus+" "+errorThrown);
}
});
后台程序(showPath.php):
<?php
@include("./other.php"); //***************
$arr = array ( );
array_push($arr,

array ( 'catid'=>2, 'catname' => 3, 'meta_title' => 5, ));
array_push($arr,array ( 'catid' => 2, 'catname' => 3, 'meta_title' => 5, ));
$jsonstr = json_encode($arr);
echo json_encode($arr);
?>
这里出了个诡异问题,当include("./other.php")这句被注释的时候,正常;当没有注释的时候,就出错。然而现在的other.php是一个空程序:
other.php
<?php
?>
这就奇怪了,是什么原因呢?我想在这里面封装数据库操作啊,为什么不能include呢?求高手指点
已经知道了,是因为编码问题。如果将源文件定为utf-8编码就会出这个问题。当初为了处理中文方便就全utf-8了,没想到会出这种问题。貌似utf-8格式的东西include进来默认会多些东西……这些东西却恰恰引发了错误。
展开
 我来答
cyan24
2012-02-17 · TA获得超过1626个赞
知道小有建树答主
回答量:1128
采纳率:0%
帮助的人:880万
展开全部
首先你得确定是不是引用文件的路径出了问题,
把other.php放在和showPath.php同一个目录下,然后include("other.php");
在other.php中<?php echo "111"; ?>以作验证试下,
如果这样还有问题的话,把include("other.php"); 换成require "other.php";
追问
路径没有问题,经过测试,在Chrome的审查元素中发现,加了include比不加的情况下,json字符串前面多了一个换行符和引号,后面多了一个引号。但是实际上other.php中没有一句echo
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaitoukids
2012-02-20 · 超过14用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:43.6万
展开全部
哈哈 楼主正解 win下有bom 被输出了 结果影响了json格式
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式