我有一个JavaScript页面,可以调用PHP页面。
$.getJSON('result.php', function(json){
var data = json.result[0];
}).complete(function(){
// do this
}).error(function(jqXHR, textStatus, errorThrown) {
// do this
});
这就是result.php的样子
require_once('config.php');
header("Content-type: application/json; charset=UTF8");
$apiMgr = new API(0, 0, array("result"));
$apiResult = $apiMgr->callAPI('GET', 'result', isset($_SERVER['PATH_INFO']) && $_SERVER['PATH_INFO'] == '/historical' ? '?option=follow' : null, null);
echo $apiResult;
在配置页面中,我添加了一些javascript脚本,如follwoing
<script>
// script
// script
// script
// script
</script>
问题是$ .getJSON()给了我语法错误,因为来自result.php的整个响应还包括不应该存在的脚本部分。
我想只回显或返回$ apiResult而不是整页。我希望我已经解释了我的问题,如果不清楚我将尝试解释它更多。
有什么建议吗?
答案 0 :(得分:0)
echo $apiResult;
exit();
您需要停止标头缓冲
答案 1 :(得分:0)
您需要在echo
语句之前提及标题。并且,打印出来后终止脚本执行。
$apiMgr = new API(0, 0, array("result"));
$apiResult = $apiMgr->callAPI('GET', 'result', isset($_SERVER['PATH_INFO']) && $_SERVER['PATH_INFO'] == '/historical' ? '?option=follow' : null, null);
header("Content-type: application/json; charset=UTF8");
echo $apiResult;
exit;
答案 2 :(得分:0)
从你的问题我发现你没有在json中编码你的回声部分 试着
echo json_encode($apiResult);
希望它能够正常工作
答案 3 :(得分:-1)
你需要有一个没有脚本标签的其他config.php。或者在config.php中添加一个条件,并测试是否需要显示脚本标记。
$.get('result.php', function(data){
var data = json.result[0];
}).complete(function(){
// do this
}).error(function(jqXHR, textStatus, errorThrown) {
// do this
});
function callbackfunction(data){
//do something
}
//in your result.php
require_once('config.php');
$apiMgr = new API(0, 0, array("result"));
$apiResult = $apiMgr->callAPI('GET', 'result', isset($_SERVER['PATH_INFO']) && $_SERVER['PATH_INFO'] == '/historical' ? '?option=follow' : null, null);
echo '';
echo 'callbackfunction('.$apiResult.')';
echo '';