Chào mọi người, tôi đang làm việc trên một widget cho Bảng điều khiển của Apple và tôi đã gặp sự cố khi cố gắng lấy dữ liệu từ máy chủ của tôi bằng chức năng ajax của jquery. Dưới đây là mã javascript của tôi:Bảng điều khiển Cross-domain AJAX với 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)
})
Và server trả lời với json này:
{"message":"Hello World","version":"1.0"}
Đối với một số lý do, mặc dù khi tôi chạy các lĩnh vực trên widget không thay đổi. Từ gỡ rối, tôi đã học được rằng các widget thậm chí không thực hiện các yêu cầu đến máy chủ, do đó, nó làm cho tôi nghĩ rằng Apple có một số loại khối URL bên ngoài tại chỗ. Tôi biết điều này không thể đúng mặc dù, bởi vì nhiều vật dụng điện thoại nhà để kiểm tra các bản cập nhật.
Có ai có bất kỳ ý tưởng nào về những gì có thể sai không?
EDIT: Ngoài ra, mã này hoạt động hoàn toàn tốt trong Safari.
Theo yêu cầu của Luca, đây là PHP và mã Javascript đang chạy ngay bây giờ:
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)
})
}
Một chút muộn của một phản ứng, nhưng điều đó đã làm nó! –