2012-03-21 70 views
0

我试图在我的应用程序中获取一些json数据,但它不会出现在结果函数中。无法在我的电话页面上获取json结果

function myLoad(){ 
     output.innerHTML = 'in the load';// + items; 
     var myJsonUrl = 'http://....be/.../lineup.php'; 

     $.getJSON(myJsonUrl, function(data) { 
       output.innerHTML = "IN THE FUNCTION"; 
     }); 

     output.innerHTML = 'END load'; 
    } 

在MU输出的div我不能在负载“看见,因此停止在.getJSON一部分。 我已经包含了正确的jQuery库(jQuery的手机和jquery1.4),并从指定的网址JSON验证。

我在做什么错了?

编辑:

在铬它的作品感叹。 因为我正在为Android应用程序工作,所以我在Eclipse Web浏览器中进行了测试。 显然,浏览器s ** ks。

THX为理念巨魔爵士

=>仍然不能回答我的问题

+0

你确定你使用类似'json_encode()'的方式来回应json格式的回报吗? – SpYk3HH 2012-03-21 14:50:26

+0

从头开始,只是遵循链接,它看起来是json格式 – SpYk3HH 2012-03-21 14:50:57

+0

另外,我总是使用http://jsonlint.com/来验证json。 – 2012-03-21 14:51:49

回答

0

您确定没有收到数据吗?你的例子很可能用IN THE FUNCTION覆盖END加载,因为回调将在函数结束后执行。

所以output.innerHTML将得到的值是这样的:

1. "in the load". 
--> Ajax request start 
2. "end load" 
--> Ajax request finishes 
3. "in the function" 

我建议尝试在回调输出data,并在回调函数中移除外部innerHTML的变化。

0

是在jsonUrl在同一个域中的脚本?我并不确定,但我认为你不能用AJAX脚本来完成跨域请求。

更新:

是PHP脚本发送json头? header('Content-type: application/json')

1

我可能在回答这个问题时有点迟,但是正在研究phonegap并且有类似的问题。您需要将该URL添加到ExternalHost阵列下的phonegap.plist文件中。

我补充说,我现在正在从外部URL获取JSON数据。

希望这会有所帮助。