仪表板跨域AJAX与jquery

Ste*_*uso 5 javascript ajax jquery dashboard widget

嘿大家,我正在为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)
})
Run Code Online (Sandbox Code Playgroud)

服务器用这个json响应:

{"message":"Hello World","version":"1.0"}
Run Code Online (Sandbox Code Playgroud)

但是出于某种原因,当我运行它时,小部件上的字段不会改变.从调试开始,我了解到小部件甚至没有向服务器发出请求,因此我认为Apple有一些外部URL阻塞.我知道这不可能是真的,因为很多小部件都打电话回家检查更新.

有没有人对什么可能是错的有任何想法?

编辑:此外,此代码在Safari中完美运行.


根据Luca的要求,这里是正在运行的PHP和Javascript代码:

PHP:

echo $_GET["callback"].'({"message":"Hello World","version":"1.0"});';
Run Code Online (Sandbox Code Playgroud)

使用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)
})
}
Run Code Online (Sandbox Code Playgroud)

Tom*_*Tom 7

在Dashcode中单击" 小组件属性",然后单击" 允许网络访问",确保选中该选项.我已经建立了一些拒绝工作的东西,这就是解决方案.