Ciao a tutti, sto lavorando a un widget per Dashboard di Apple e ho riscontrato un problema durante il tentativo di ottenere dati dal mio server utilizzando la funzione Ajax di jQuery. Ecco il mio codice JavaScript:Dashboard AJAX cross-domain con jquery
$.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)
})
e il server risponde con questo JSON:
{"message":"Hello World","version":"1.0"}
Per qualche ragione, però, quando corro questo i campi del widget di non cambiare. Dal debug, ho appreso che il widget non fa nemmeno la richiesta al server, quindi mi viene da pensare che Apple abbia una sorta di blocco di URL esterni. So che questo non può essere vero però, perché molti widget telefonici a casa per verificare la presenza di aggiornamenti.
Qualcuno ha qualche idea su cosa potrebbe essere sbagliato?
MODIFICA: Inoltre, questo codice funziona perfettamente bene in Safari.
Come richiesto da Luca, ecco il codice PHP e JavaScript che si sta svolgendo in questo momento:
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)
})
}
Un po 'in ritardo rispetto a una risposta, ma è andata così! –