Hej wszystkim, pracuję nad widgetem dla Dashboard firmy Apple i napotkałem problem podczas próby pobrania danych z mojego serwera przy użyciu funkcji ajax jquery. Oto mój kod javascript:Dedykacja między domenami AJAX z 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)
})
a serwer odpowiada tym json:
{"message":"Hello World","version":"1.0"}
Z jakiegoś powodu jednak, gdy ten pola na widget nie zmieni. Po debugowaniu dowiedziałem się, że widget nie wysyła żądania do serwera, więc wydaje mi się, że Apple ma jakiś blok zewnętrznego adresu URL. Wiem, że to nie może być prawda, ponieważ wiele widżetów telefonuje do domu, aby sprawdzić dostępność aktualizacji.
Czy ktoś ma jakieś pomysły na temat tego, co może być nie tak?
EDYCJA: Ten kod działa również doskonale w Safari.
Zgodnie z wnioskiem Luca, oto PHP i kod JavaScript, który jest uruchomiony teraz:
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)
})
}
Trochę za późno, ale tak się stało! –