bellow脚本在我的本地主机上运行但在我的站点上不起作用。 我只是以jqueryMobile列表格式测试简单的Json脚本 知道什么是错的吗?
感谢
单击HTML页面调用Ajax函数:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="protected/jQuery/jquery.mobile.structure-1.0.1.min.css" />
<link rel="stylesheet" href="protected/themes/Green/red_theme.min.css" />
<script src="news_services/js/jquery.js"></script>
<script src="news_services/js/jquery.mobile-1.0rc1.min.js"></script>
<script type="text/javascript" src="protected/jsnM.js"> </script>
</head>
<body >
<div data-role="page" id="home" >
<div data-role="header" >
<h1>JSON testing</h1>
<div data-role="controlgroup" data-type="horizontal"></div>
</div>
<div data-role="content">
<p> Json testing</p>
</div>
<div data-role="footer">
<a href="#getAll_JSON" onClick="jsn1()" data-role="button" data-inline="true" data-icon="info">call JSON</a>
</div>
</div>
<div data-role="page" id="getAll_JSON">
<div data-role="header" data-position="fixed" >
<h1>Json format</h1>
<div data-type="horizontal" >
<a href="#home" data-role="button" data-inline="true" data-icon="home">Home</a>
</div>
</div>
<div data-role="content">
<ul id="sitesList" data-role="listview" data-filter="true" data-split-icon="gear" >
</ul>
</div>
<div data-role="footer" data-position="fixed"></div>
</div>
<div id="detailsPage" data-role="page" >
<div data-role="header">
<h1>info</h1>
<div data-type="horizontal" >
<a href="#home" data-role="button" data-inline="true" data-icon="home">Home</a>
</div>
</div>
<div data-role="content">
<div id="sitesDetail" >
</div>
</div>
</div>
</body>
</html>
在这里调用Ajax:
var areaID=0;
function jsn1(val)
{
var url_Category="http://gonorth.co.il/protected/indexJSON.php?";
$.ajax({
url: url_Category,
type: "GET",
data: 'No='+val+"&area="+areaID,
dataType: "json",
cache: false,
error: function () {
alert('loading Ajax failure');
} ,
onFailure: function () {
alert('Ajax Failure');
} ,
statusCode: {
404: function() {
alert("missing info");
}
},
success: function(result) {
$('#sitesList li').remove();
$.each(result.sites,function(index,dat){
$("#sitesList").append(
'<li>'+
'<img src="images/'+dat.coupon_img+'" width=80/>' +
'<p >Name: '+dat.coupon_name+'</p>'+
'<p >info: '+dat.street+'</p>'+
'<p >address:'+dat.coupon_tmp+'</p>'+
'</li>'
);
});
$('#sitesList').listview('refresh');
}
});
}
PHP结果:
<?php
$arr = array();
$arr[] =[
"coupon_id" => '1',
"coupon_img" => '1.jpg',
"street" => 'long text',
"coupon_tmp" => 'Address',
"coupon_name" => 'Name'
];
echo '{"sites":'.json_encode($arr).'}';
?>
答案 0 :(得分:0)
当我访问此链接:http://gonorth.co.il/protected/indexJSON.php时,您的Web服务器通过PHP解析器显示您的JSON。您应该查看Web服务器的设置,并了解如何设置它以使JSON文件的内容类型为application/json
。当前的响应是由text/html
的conten-type引起的,这很可能是因为它试图被PHP解析器解析并且解析器在语法或类似的东西上窒息,然后服务器呈现HTML错误页面。
答案 1 :(得分:0)
感谢所有答案。 问题,是Php数组 在我的Loclahost和serevr中可能有不同的Php版本 下一个Php阵列在我的LocalHost中工作,但没有在服务器上工作
<?php
$arr = array();
$arr[] =[
"coupon_id" => '1',
"coupon_img" => '1.jpg',
"street" => 'long text',
"coupon_tmp" => 'Address',
"coupon_name" => 'Name'
];
echo '{"sites":'.json_encode($arr).'}';
?>
我把它改成了
<?php
$arr[] =array(
"coupon_id" => '1',
"coupon_img" => '1.jpg',
"street" => 'long text',
"coupon_tmp" => 'Address',
"coupon_name" => 'Name'
);
echo '{"sites":'.json_encode($arr).'}';
?>
它也在服务器上工作
答案 2 :(得分:0)
<?php
$arr = array();
$arr[] =[
"coupon_id" => '1',
"coupon_img" => '1.jpg',
"street" => 'long text',
"coupon_tmp" => 'Address',
"coupon_name" => 'Name'
];
$res['sites']=$arr;
echo json_encode($res);
?>