用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进来默认会多些东西……这些东西却恰恰引发了错误。 展开
$.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进来默认会多些东西……这些东西却恰恰引发了错误。 展开
展开全部
首先你得确定是不是引用文件的路径出了问题,
把other.php放在和showPath.php同一个目录下,然后include("other.php");
在other.php中<?php echo "111"; ?>以作验证试下,
如果这样还有问题的话,把include("other.php"); 换成require "other.php";
把other.php放在和showPath.php同一个目录下,然后include("other.php");
在other.php中<?php echo "111"; ?>以作验证试下,
如果这样还有问题的话,把include("other.php"); 换成require "other.php";
追问
路径没有问题,经过测试,在Chrome的审查元素中发现,加了include比不加的情况下,json字符串前面多了一个换行符和引号,后面多了一个引号。但是实际上other.php中没有一句echo
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询