我有一个返回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)以显示链接中的数据。我怎么能这样做到其他浏览器?
答案 0 :(得分:1)
当您说“网络服务”而不是“本地文件”时,听起来您可能正在向其他域发送请求。由于安全限制,浏览器不允许这样做。考虑让远程服务支持JSON-P进行跨站点通信,或者通过您自己的服务器路由请求(即,浏览器向您的服务器发送请求,您的服务器向远程服务器发送请求,您的服务器从远程服务器获取响应服务器,您的服务器响应相同的响应。)
答案 1 :(得分:-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');
});