1

我有一个返回 json 数据的 php web 服务。我的问题是,当我从 url 调用 json 数据时,什么都不返回,但是当调用具有完全相同数据的本地文件(从 url 复制)时工作正常。

我收到的 json 数据例如

{"ResponseData":[{"Code":"91010001","Description":"ISADORA ","retailprice":"52.0000000000"},{"Code":"91010002","Description":"ISADORA ","retailprice":"52.0000000000"}]}

我用来获取 json 数据的脚本是

     <script>$.getJSON("url",

    function(data){

                    var output = '';

      $.each(data.ResponseData, function(i,data){
         output += '<li><a href="#">' + data.Code + '</a></li>';
         if ( i == 50 ) return false;

      });
         $('#listview1').append(output).listview('refresh');
    });

 </script>

最后,我使用 ajax 脚本来显示 json 数据,但返回错误 [object Object]。

     <script>
 var obj 
  $.ajax({
url: 'url",
type: "GET",
dataType: 'json',
success: function( data ) {
  alert( "SUCCESS:  " + data );
},
error: function( data ) {
var obj = $.parseJSON(JSON.stringify(data));
  alert( "ERROR:  " + data );
}

});

你知道如何解决这个问题吗?

提前致谢

编辑:

希望这会有所帮助:在应用程序中,我首先使用函数 obj2json 将数据转换为 json,然后使用 json2obj 填充数据。

EDIT2: 在 IE9 中,我必须单击允许块内容(用于脚本或 Active X)才能显示来自链接的数据。我如何对其他浏览器执行此操作?

4

2 回答 2

1

当您说“Web 服务”而不是“本地文件”时,听起来您可能正在向不同的域发送请求。由于安全限制,浏览器不允许这样做。考虑要求远程服务支持JSON-P进行跨站通信,或者通过你自己的服务器路由请求(即浏览器向你的服务器发送请求,你的服务器向远程服务器发送请求,你的服务器从远程服务器获得响应,您的服务器以相同的响应响应)。

于 2012-08-08T13:56:33.123 回答
-1

你需要使用JSON.parse(data)

 $.getJSON("url",
function(data){
               data = JSON.parse(data);
               var output = '';
              $.each(data.ResponseData, function(i,data){
     output += '<li><a href="#">' + data.Code + '</a></li>';
     if ( i == 50 ) return false;

  });
     $('#listview1').append(output).listview('refresh');
});
于 2012-08-08T13:53:26.640 回答