小编典典

带有jQuery的仪表板跨域AJAX

ajax

大家好,我正在为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)
})
}

阅读 251

收藏
2020-07-26

共1个答案

小编典典

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

2020-07-26