加载ajax JSON失败

时间:2013-05-10 09:06:43

标签: javascript ajax json

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).'}';
?>

3 个答案:

答案 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);
?>