大家好,我正在为Apple Dashboard开发小部件,尝试使用jquery的ajax函数从服务器获取数据时遇到了问题。这是我的JavaScript代码:
$.getJSON("http://example.com/getData.php?act=data",function(json) { $("#devMessage").html(json.message) if(json.version != version) { $("#latestVersion").css("color","red") } $("#latestVersion").html(json.version) })
服务器使用以下json响应:
{"message":"Hello World","version":"1.0"}
但是由于某种原因,当我运行它时,小部件上的字段不会更改。通过调试,我了解到该小部件甚至没有向服务器发出请求,因此让我认为Apple拥有某种外部URL块。我知道这不是真的,因为许多小部件都会打电话回家检查更新。
有人对可能出什么问题有任何想法吗?
编辑:此外,此代码在Safari中也可以正常工作。
根据Luca的要求,这是目前正在运行的PHP和Javascript代码:
PHP:
echo $_GET["callback"].'({"message":"Hello World","version":"1.0"});';
Javascript:
function showBack(event) { var front = document.getElementById("front"); var back = document.getElementById("back"); if (window.widget) { widget.prepareForTransition("ToBack"); } front.style.display = "none"; back.style.display = "block"; stopTime(); if (window.widget) { setTimeout('widget.performTransition();', 0); } $.getJSON('http://nakedsteve.com/data/the-button.php?callback=?',function(json) { $("#devMessage").html(json.message) if(json.version != version) { $("#latestVersion").css("color","red") } $("#latestVersion").html(json.version) }) }
在Dashcode中,单击“窗口 小部件属性”, 然后单击“ 允许网络访问”, 确保已选中该选项。我已经建立了一些东西,只是拒绝工作,这就是解决方案。